吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1751|回复: 51
收起左侧

[讨论] 编程大佬请进,请教几个问题?

[复制链接]
七夕的乌鸦 发表于 2022-11-24 00:31
本帖最后由 七夕的乌鸦 于 2022-11-24 09:43 编辑

我是刚学编程的新手,学的是易语言。

重新编辑一下,说一下我为什么会有此一问,很多人可能看完都没明白我想表达的是什么意思就开始喷我。
第一, 我是受了这个帖子的启发:https://www.52pojie.cn/thread-1715436-1-1.html
其中有一句话是这样的:不管是什么编程语言,其目的就是编写出一段能够让计算机看懂的代码。
第二,前段时间看了一篇新闻:
4.png
说英美等国,很多地方已经把编程纳入了中小学的必修课
对于他们的中小学来说,学习编程,本来就占有先天性优势,因为整个编程的环境都是英文的。
队友中国的小朋友来说,别说记语法了,连读这一段语法都费劲。
如果一段代码报错了,可能2年级的外国小朋友能基本上看懂哪错了
但是咱们的2年级小朋友都看不懂报错的提示,除非在不会说话的时候就开始学习英语,日常用英语交流。
对于编程我不是很懂,对于编程语言的起源,我也大致了解了一下,了解的并不深,但是我有疑问
我知道易语言是基于VC++开发的
就像是for语句
打包成易语言的中文代码就是:变量循环首     易语言的提示里,英文名就是for ,直接输入for也能转换成 变量循环首  
我也不知道打包这个词用的准不准确。
vc++的代码可以打打包成中文
其他语言就不能开发中文编程吗?
python是用C语言写出来的。
假如说想做一个跟python所有功能一样的中文编程,能不能也用C语言开发。如果不能,那能用什么语言开发?
又或者说能不能做个跟C语言所有功能一样的中文编程
又或者说能不能做个跟B语言所有功能一样的中文编程
等等。。。。。。
极限的话,能不能做成像汇编语言那样?

如果有难度,难度在哪?真的不可能实现吗?
这些东西我不太懂,希望大佬解答一下,谢谢!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

pinesnow 发表于 2022-11-24 01:29
打包成中文没啥太大的意义,易语言相当于VB的汉化版,木兰语言相当于Python的汉化版,编程语言通过编译器翻译成汇编指令、二进制码等,所以难点就是实现中文到汇编指令或二进制机器码的编译器的实现,实现不是很难,但是
1. 中文词汇的歧义什么的比较多,一个词甚至可以表达相反的意思,所以不太适合,
2. 再加上那么多成熟的英文编程体系,中文编程太小众推广难度大
3. 中文编码占用字节比较长,消耗存储空间过大,不适合大型应用开发等
个人见解,请参考大佬们的意见,如有不对之处还请恕在下学识不足
dv3lood 发表于 2022-11-24 01:33
首先,易语言是基于vb开发的。它和vb的关系就跟你换了身衣服一样。
如果你想,也可以把任何语言中的关键字用中文替代。
编程语言的核心是编译器/解释器,是语言所设计的架构,而不是你用中文还是英文来写。
plauger 发表于 2022-11-24 02:02
你的问题太宽泛,很抱歉不能完整地解答你的疑问。

如果你是个编程新手,给你的忠告就是放弃“易语言”,认真地挑选一种你能接受,并且稍微正式一点的编译语言。python/java/go/rust/c/c++, 等等,常见的,流行的编程语言,任何一种都可以,特别是你将来想用来谋生计的话更应该如此。

也不建议你去纠结“中文编程”或者“中文编程语言”, 如果你学过《编译原理》就会明白,中不中文的其实意义不大。现有的编程语言都离不开定义“关键字”或保留字,而且还要制定一套严格的语法来保证代码能正确翻译和解析。如果仅仅是把“关键字”或保留字换成中文,甚至可以定义中文变量等,意义真那么大吗?显然不是的。
爱飞的猫 发表于 2022-11-24 02:41
本帖最后由 爱飞的猫 于 2022-11-24 08:20 编辑
#include <string>
#include <iostream>
#include <cstdint>

#define 面 main
#define 整32 int32_t
#define 正32 uint32_t
#define 标准输出 std::cout
#define 换行符 std::endl
#define 返回 return
#define 对于 for
#define 只要 ;
#define 那就 ;
#define 自增 ++
typedef std::string 字符串;

整32 面() {
    字符串 信息 = "你好世界";
    标准输出 << 信息 << 换行符;

    对于 (正32 计数 = 0 只要 计数 < 10 那就 自增 计数) {
        标准输出 << "计数器来了 - " << 计数 << 换行符;
    }

    返回 0;
}

编译本身就是把‘文字’形态的代码转化为机器可读的字节码。你可以把这个理解为‘翻译’。
你如果想,设计一个中文的汇编语言也可以。但你的编译器最终还是要编译到字节码来让机器跑。

免费评分

参与人数 6吾爱币 +5 热心值 +5 收起 理由
浙江螃蟹 + 1 + 1 我很赞同!
QT2008 + 1 大佬讲的很通透
sniper9527 + 1 + 1 热心回复!
bester + 1 + 1 我很赞同!
无闻无问 + 1 + 1 我很赞同!
YSJohnson + 1 我很赞同!

查看全部评分

lanna 发表于 2022-11-24 02:59
可以做,但是应该没意义
首先,汇编语言是助记符,你拿中文助记肯定没问题的
后面的c语言,Java等高级语言,个人看法就是,一步步的把一些常用的功能封装,丢给一个专门的工具来做(编译器,java的包)
所以,拿中文替换英文,应该是不成问题的,但是能做到的为什么要这样子做呢。。。。
技术发展很重要的就是一个生态(个人看法,就计算机发展而言)
现在别人,用这么多年,搭建的一个生态,就算你花时间写出一个新的编译器,让他支持中文,但是,环境呢?这么多,别人早就造过的轮子(写过的代码),就得重新发展了
1006442347 发表于 2022-11-24 07:00
我补充一下:
先说结果,你需要放弃易语言,转学一门正常的高级语言。
像6层那样也可以向中文编程一样。
如果让程序员搞一个国人中文编程,且不是使用宏进行文本替换。
首当其中的是,你需要搞中文编程语言的编译器。
而编译器是为了翻译成机器可读的二进制,而这个二进制是还需要由cpu解析执行。
也就是 编译方 => 双方认同的二进制 => cpu
cpu只认识二进制,这个二进制这么写,什么规则是由外国人定的(Intel cpu 和 AMD cpu)
所以你需要搞中文编程最终又变成了研发出我国的cpu,而搞定cpu需要搞光刻机。
所以你知道为什么漂亮国抢台积电了吗
1006442347 发表于 2022-11-24 07:07
至于中文编程占双字节,你在人家的根基搭房子,根基限制你盖房子的材料,甚至设下暗桩,你也没办法。
开发的程序抛开功能外主要看两个:时间复杂度和空间复杂度。
我还是相信有适合我国的中文编程的道路,但是被卡脖子卡的有点紧
无闻无问 发表于 2022-11-24 07:48
爱飞的猫 发表于 2022-11-24 02:41
[md]```cpp
#include
#include

写得恰到好处,服了
街望 发表于 2022-11-24 08:20
刚学编程为啥要考虑这个,不应该考虑未来使用吗。不过学易语言找工作难,极少公司会用易语言, 能用易语言的公司很多不是正经公司。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-10 04:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表