{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

计算机编程是否可以用中文编程?可否颠覆或重写计算机历史?

zhongmeizhizhongmeizhi 回答10 收藏1
收藏问题

10条回答

FleyX

FleyX

回答于2022-06-22 19:05

用中文编程理论是可行的

计算机是以二进制来运算和处理数据的,对于计算机来说,它只认识“0”和“1”。所以指令和数据都需要转换为“0”和“1”的组合才能被计算机识别。但我们不可能用用“0”和“1”来编程啊,这样的效率是极奇低的,也难以识别出错误。于是聪明绝顶的人类发明了汇编语言,也可以叫做符号语言,用助记符代替计算机指令的操作码,用地址符号或标号代替指令或者操作数的地址。比如"ADD 代表加",“JMP代表跳转”;因为发明汇编语言的是外国人,所以它们用了英文形式的助记符号。如果当初是中国人发明了计算机和汇编语言,也有可能用"加"代表加运算,用“跳转”代表跳转,其实作用是一样的。

很多用于少儿编程教学的就是图形化的编程方法,上面除了图形,还有中文!

计算机是怎么运行程序的?

上面已经说到,计算机并不能直接识别和运行程序,我们编写的程序需要通过编译器“翻译”为计算机能够识别的由二制进数组成的机器码。

除了计算机的发展和程序复杂程度的不断加大,汇编语言也没法满足我们的编程要求了,为了提高效率,人们又发明各程高级语言,比如C,C++,PHP,Phyon等等。同样使用这些高级语言需要对应的编程环境,编写的程序同样要通过编译器“翻译”为计算机能够运行的程序。编译器能将英文编写的程序“翻译”,同样也是可以将中文编写的程序“翻译”过来的,只是有没有必要罢了。

中文编程可行吗?效率高吗?

首先中文编程是绝对可行的,但效率其实并不高。因为计算机的发展已经相当成熟,我们输入用的键般都是由英文字母和符号组成的。比如一个"if"语句,只需要输入“i”和“f”,如果用中文“假如”代替,那得按多少下键盘?效就是不是更低呢?有的朋友可能说,不懂英文怎么写程序啊?其实编程所用的那些英文都是相当简单的,比如"if",“while”,"switch"等等,对最基础的程序员都没有困难。困难的是大量的编程资料、示例、教程都是英文写的,会对英文水平不高的程序员造成一定的阅读和理解困难。

欢迎关注@电子产品设计方案,一起享受分享与学习的乐趣!关注我,成为朋友,一起交流一起学习

  • 记得点赞和评论哦!非常感谢!

评论0 赞同0
  •  加载中...
skinner

skinner

回答于2022-06-22 19:05

汉语拼音怎么样?可以组成海量的词汇。

评论0 赞同0
  •  加载中...
linkFly

linkFly

回答于2022-06-22 19:05

你好,老修来分享一下你的问题。


中文编程语言

比较具体的有九个可以用中文编程的语言,可是内核都是英文的,壳是中文的。

1、易语言


2、习语言


3、丙正正

4、PerlYuYan

5、中蟒

6、周蟒

7、O语言

8、中文培基

9、文言文(wenyan-lang)语言


计算机用中文重写

我以前也想过的,学计算机的时候,后来我是这样想的,你参考一下:我们的语言是中文,是方块字,最基本的小学毕业认识的字,需要学3000个左右的汉字,那这内存应该要很大吧?那就改用汉语拼音,对啊,想了想,咦~不对啊,那不是又回到罗马字母,还是国外的东西~~~~,那就用偏旁部首好了,那不是要把整部新华字典给录到库里,那还是大的一批啊,这样也不行的,人家就26个字母。


总结

有想法是好的,应该保持,也许哪一天,我们发现了另外一种材料,比如黑暗物质之类的,速度不在是问题,可还是人家的那个简单~~~~~

评论0 赞同0
  •  加载中...
jimhs

jimhs

回答于2022-06-22 19:05

计算机编程当然可以使用中文,这个是毋庸置疑的,但想颠覆或重写计算机历史有些牵强,毕竟主流的编程语言都是以英文为主,而且也已被大众所接受,下面我简单介绍一种中文编程语言—易语言,纯粹基于国人思想开发,感兴趣的朋友可以尝试一下:

安装易语言,搭建开发环境

首先,最基本也是最重要的,需要搭建易语言开发环境,这个直接到官网下载安装包即可,一个exe文件,双击便可安装,目前最新版本是5.9,均支持windows系列,linux版本正在开发中,需要注意的是,与java、python等编程语言不同,易语言本身是收费的,需要付费购买版权(加密狗),否则不能正常使用:

使用易语言编写程序

正确安装并激活软件后,我们就可以直接进入IDE开发环境进行易语言编程了,这里目前支持windows窗口程序、windows控制台程序等4种常见应用,所有程序新建完成后,都是以中文进行编程,基本组件和模块也都是中文的,非常简单明了,如果你本身不熟悉英文,那可以说是非常合适,只要熟悉一下基本语法和结构,很快就能入门,而且官方自带有非常详细的用户手册,非常适合初学者学习:

打包发布易语言程序

程序编写完成后,针对软件的打包和发布,易语言也提供了现成工具,如下,支持普通编译、独立编译和静态编译3种方式,可以轻松将你编写的程序一键打包,不过有个通病,就是生成的exe文件会被许多杀毒软件误认为病毒,自动隔离并清除,这里你需要多带带添加信任才行,否则刚编译好的文件就会立刻消失:

至此,我们就完成了易语言的安装和使用。总的来说,易语言学习和入门来说非常容易,只要你会中文,熟悉一下基本语法和结构,很快就能入门,但应用范围会十分受限,几乎没有公司采用这个语言开发软件,后期也会难于维护和扩展,追根刨地还是生态不好,建议还是以主流的英文编程语言为主,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

评论0 赞同0
  •  加载中...
lauren_liuling

lauren_liuling

回答于2022-06-22 19:05

中文编程并不难,没有中文编程,是不需要

中文编程并不是什么难事,学过编译原理的本科生,都能开发编译器,实现一门“中文编程语言”,或者将中文语言由JIT动态编译成其它编程语言再执行(如文言文编程语言之于JavaScript)


没有中文编程语言,是没有必要,没市场,没“生态”,没真正的程序员会用

没有人用的编程语言,只是一个玩具而已,就象“易语言”,文言文编程语言


中文编程,不管是从输入效率,代码可读性,简洁性上来说,都没有使用英文字符的编程语言好。


中文编程,永远不可能流行,即使某天中文成为全世界通用语言



文言文编程语言


以上中文编程,觉得看起来怎么样?

评论0 赞同0
  •  加载中...
VPointer

VPointer

回答于2022-06-22 19:05

在回答这个问题之前,先来看一个简单的中文程序,如下图:

可以说是全中文编程吧,类型、关键字、注释、程序变量等,全部中文。也许有人好奇这是怎么做到的,那么再来看一下隐藏在背后的原理和秘密吧,见下图:

这只是一个很简单也很普通的C++程序,通过这个例子,我想说明一个问题,中文编程是在技术上是可行的,只是因为意义不大,所以并没有太好的中文编译器。

为什么这么说呢?前面有几位网友也有提到,这里再多说几句。

我们知道,不管用什么编程语言,最终在机器上运行的都是机器码,也就是01组成的指令序列,所有的编程语言的根本目的不过是为了更容易将人类的思想转换为机器代码,这就是编译器做的事情,实际上它相当于一个转换器,所以不管是用英语编程,还是中文编程,只要这个基本原理没有突破,目前的现状就很难改变。

下图是去年前20的编程语言:

那么为什么会有那么多的编程语言?那是因为每种语言都有自己擅长的领域,在某些领域某种语言快速高效,而在另一些领域别的语言更能发挥自己的特长,比如C语言就适合底层开发,而Java更适合Web开发,Matlab适合数学相关的应用。

那么,什么时候会出现中文编程呢,我觉得在两个方面的突破可能会带来一些机会,一是新的CPU架构与指令系统的出现,比如支持汉语指令;二是一种新的程序到机器码的转换方式,也就是编译原理的突破,比如自然语言理解实现突破,机器可以高效准确理解人的意图,这样任何人只需要用自己的母语和计算机交流,然后计算机理解人的目的并将它变成程序。

不过我认为这些突破难度很大,期待天才的出现让我们眼前一亮。

评论0 赞同0
  •  加载中...
z2xy

z2xy

回答于2022-06-22 19:05

一定可以,只是我不会!????????????

评论0 赞同0
  •  加载中...
MAX_zuo

MAX_zuo

回答于2022-06-22 19:05

现在计算机遵循的还是冯诺依曼的体系,最终运行的格式还是要用二进制,所以至于上面是用英文还是中文的格式差异不是很大,倒是现在提及的新一代的计算机的架构量子计算机可以做做文章,有些巨头企业已经开始在量子计算机上发力了,像研发能力比较强的美国几个巨头都在新的领域投入很多的资源,其中量子计算机也是重点投入点特别是在谷歌公司在这方面花的代价尤其的巨大,所以在旧的框架体系下构造中文编程语言格式从理论上也是可行的,但构造的一种编程语言不仅仅是技术层面的东西,关键还是生态系统的构建过程,目前主流的编程语言体系都是基于英文体系完成的,再次在上面构造中文的编程语言意义已经不是很大。

目前国内软件行业在应用领域已经积累了大量的技术人才,而且有一点非常好国内的软件技术人员都是服务于国内的科技公司了,不像很多国家本身也拥有很多数量的软件技术人才但都是给欧美国家做外包了,对于本土的软件产业的提升意义不是很大,由于国内应用级开发人员增多,已经给很多人造成了一种假象中国人应该拥有自己的编程语言,真正意义上的拥有是在全球范围内大规模的使用,而不是仅仅局限于国内的使用。

中国的科技实力经过几十年的努力已经有了长足的进步,特别是在很多基础领域,就拿软件编程来讲国内之所以发展迅速也离不开开源世界的贡献,国内很多应用级别的开发都是在开源的基础上延伸出来,真正意义上的创新还不是特别普遍,还都是在国外的基础上应用开发,这个时候谈中文编程其实在时机上还是不够,毕竟在基础产业上积累还不是很够,即使基础能力上去了要改变现有的生态也是极难的一件事情,就需要迎接新的历史时机,国内的ucloud公司也在量子计算机上进行大量的研究,所谓的弯道超车就是不是靠投机取巧而是抓住的新的机会另辟新径。

计算机现有的框架已经深入人心,而且已经存留了大量的忠实用户,在现有基础局部的改进创新赢得生态的机会不大,想要真正意义上的颠覆或者创新必须抓住新的历史机遇,移动互联网时代各个城池基本上已经接近饱和了,未来属于万物互联的时代也是中国科技公司极好的机会,目前走在前面的企业有ucloud,ucloud巴巴等企业已经开始着眼于未来了,抓住历史变革的机遇什么中文编程之类就会顺其自然的产生。

改变科技现状需要真正意义上技术积累,国内的科技公司大部分还是做着应用层面,还处于满足生存的现状从大局上看积累还是不够,还是需要时间上的积累,已经在快速发展的中国科技现在需要一个平稳的发展环境,在积累中慢慢完成超车,才有真正意义上的颠覆创新,希望能帮到你。

评论0 赞同0
  •  加载中...
sewerganger

sewerganger

回答于2022-06-22 19:05

你好,IT行业开发人员前来答题。


采用中文来编程,技术上是可以做到的,但是属于费力不讨好,只改变编程的语言类型,是无法颠覆计算机历史的。

如何做到中文编程?

世界上有好几百种编程语言,比较流行的有C语言、C++、Java、Python等,但是无一例外,这些语言都是采用英文字符,这是因为长期以来计算机技术和编程语言都被欧美国家主导,所以自然都使用英文字符作为编程语言。但是无论是上面哪种语言编写的程序,最终只有转换成电脑认识的“0”和“1”才能被真正执行,不同语言的差别主要在于把英文转换为0和1的翻译器不一样而已。

注:上面的翻译器实际上指生成可执行程序,如果是C语言则代表编译器、链接器、生成器的总和,如果是Java语言,则代表编译器、虚拟机的总和,为了表达方便简称为编译器,下面也不再特意区分。

实现中文编程的两种方法:

  • 比较简单的办法

最简单的办法是先开发出一种软件,这个软件可以将中文程序翻译为英文程序,然后剩下的就是把英文程序翻译为0和1了,这部分不用重新开发,使用原来的编译器就可以做到。

  • 比较困难的办法

如果不想先把中文程序翻译文英文程序,而是想做到让计算机“读懂”中文程序,那么就需要把整个计算机硬件的指令体系、编译器、链接器、生成器或者虚拟机全部重写,这个工作量就大了,就算是集中国全国之力,可能也需要数年才可能完成。

从英文编程改为中文编程无法颠覆计算机历史

真正可以影响计算机编程或者说计算机历史的,是编程语言,而不是编程语言使用的符号(如中文符号或者英文字母),这是有本质差别的。一套完整的编程语言包括语法规则、编译器/链接器/生成器或者虚拟机,只要这样才能实现把人的思维翻译成电脑能懂的0和1。而采用中文字符来书写语言还是英文字符来书写语言,不会影响到上面的任意部分。

当然,如果是采用上面比较困难的办法,把整个计算机软硬件系统全部重写,确实可以称得上是颠覆或者改写了计算机历史,但是这样做没有什么意义,除非改变了当前的0和1的计算机体系,比如量子计算机这种,不再使用0和1来表示信息,而是更多的状态值,这才真正有价值。


总之,在目前的计算机系统中,实现中文编程不是难事,只不过多做了一些无用功而已,毕竟采用英文编程学习成本很低。如果想改写整个计算机软硬件系统,短期内也看不到任何可能,因为英文系的编程语言大家都很满意。真正有价值的改变,是改变当前的0和1的计算机体系,我也很期待这一天的到来。

评论0 赞同0
  •  加载中...
arashicage

arashicage

回答于2022-06-22 19:05

没有原创新,就没有超越,建议:开发自己的编程语言,和操作系统,彻底解决缺心少魂。

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<