一个引起巨大争议的问题:为什么中文不能用来编程?

学过计算机的应该都知道计算机语言经历了机器语言,汇编(伪机器语言),高级语言三个阶段。

假设我们要计算1+2(数值先不管,我们只看+号,)。计算机可不认识什么加号,它只认识0和1。

计算机诞生之初,只有人来迁就计算机,我们就假定0000 0001这段代码表示加法,当计算机读到这段代码时计算机就知道它要将两个数值进行相加了(最开始就是这么干的,用打孔器打孔,打个冻表示1不打表示0,然后把纸带也即'程序'输入给计算机)。这就是机器语言。

这么做的效率显然效率非常低下(比如一个几十页的纸带,错打了一个孔,吼吼……),也不方便人去理解,怎么办呢,我们可不可以用一个短语(词)来方便我们记忆呢?当然可以,然后约定俗成就让“ADD(话说如果是中国人发明的,这个可能是[加]了)”替代0000 0001 来代表加法,这个时候程序大概就变成了ADD 1 2,我们将这个输入计算机,可惜了,计算机还是不认识,仍旧需要转换成 00000001 1 2的形式计算机才能理解,只要能开发出门转换的工具(核心技术),事实上就是这么做,这个时候人只需要关注ADD就可以了,剩下的可以不管,交给转换工具来处理。这是汇编语言(第二阶段),相对机器语言而言,更加接近自然语言,更加方便人去理解成语了。

但是汇编语言仍旧是是直接操作硬件,对人仍旧不友好,然后就出现了高级语言,高级语言仍旧需要将程序翻译成计算机可识别的代码,这个翻译的过程肯定不是漫无目的(比如add,不能说我第一次翻译成加,第二次翻译成减吧),它仍旧需要遵从一定的规则(这个规则就是各个编程语言的语法[关键字],比如c语言的print,就是打印,当碰到这个关键字时就会分解成多个指令调用计算机硬件完成向计算机屏幕打印信息)(听到有人说中文的多意性导致计算机不识别的,真想呵呵你们一脸!)

其实从这个角度来说,高级语言就是一套语法,然后和这套语法对应的翻译器。这套语法怎么实现无所谓(中文也OK),只要你能有对应的翻译器将这个翻译成计算机可执行的程序……

不难看出计算机语言的发展是越来越接近人类语言,越来越方便人的理解的,所以也有人提出计算机语言的发展到最终的结果就是自然语言。

总结一下吧,中文编程肯定是可以的,问题是值不值得?有没有必要的问题??

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180112A0D9M800?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区