假设中国人最先开发电脑和设计程序语言,那么各种程序语言会使用汉字吗?

作者:asdf
链接:https://www.zhihu.com/question/280213529/answer/425931202
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

编程语言是人和计算机交流的语言,如果不适应计算机的硬件基础,无法输入到计算机里也无法正常运行输出结果,那么是毫无意义的。

 

这个问题回顾一下计算机发展史就很清晰了。

  • 首先是机械计算机时代:

如果要说这个时代有编程语言的话,就是“齿轮语”,工匠加工出来的机械结构怎样,决定了计算机的功能和运算方式,新程序等于换一组齿轮。

  • 然后是早期电子计算机:

这时候的编程语言是“开关语”或者“连线语”,编程靠人力插拔开关,一张新的连线板可以执行新的功能。

和之前机械齿轮一个重要不同在于,齿轮可以多态,但是电子器件物理上开关二态效率最高,所以奠定了电子计算机二进制的基础。

如果是中国的计算机到了这个阶段,也必须有且只有两个状态,可能是1000010,也可能是ABBBBAB,或者阳阴阴阴阴阳阴,但是不会是复杂的表意文字。

  • 然后是打孔纸带和汇编语言的年代:

这时候的编程语言是这样的,必须用计算机能够读取的二进制来写。

当然0和1对人类是不怎么友好的,所以就出现了BCD码:

把二进制转写成简单的数字和字母,就终于有比较类似现在编程语言的文字形式了,也就是最早的汇编:

在这一个阶段,计算机能处理的只有简单的十几个字符(BCD码和汇编语言总共只用了10个数字,6个字母,1个空格),连完整的英文都没有,更别说中文了。

如果是在中国发展,可能会出现一门由少量字符构成的“天干地支语”,类似于“子丑,甲乙丙,丁戊己;辰巳戌,壬癸,庚辛;”或者用八卦卦象代替十六进制的0~f,然后翻译成0和1,或者阳和阴,或者—和- -的二进制数据。

  • 再接着往上发展,终于到了ACSII码和数码管显示的年代

最早的ASCII码只用了7位二进制,编码了127个字符。

有了这些编码,汇编语言就可以进化成简单单词命令构成的机械码:

已经有了较容易理解的命令,单词,注释,接近今天我们所知的编程语言。

同时相应的显示设备是这样的:

 

 

对于构成元素简单的字母文字来说,这种程度的编码已经够用了,可以把纽约股票价格滚一遍,或者显示一部莎翁的大部头,写个程序自然没有问题。和机械打字机技术结合,键盘输入代码,运行程序,然后把结果打印成纸质版也没有问题。可以说今天计算机能有的基本功能那时候就已经完善了,今天编程语言的直接祖先也都出现在这个时期。

但是遇到中文,一百来个字符显然是不足以完全表意的。所以选择只有两个,要么是发明或者改造一种简单的符号体系用来写程序,要么就放弃早期计算机科技等下一个时代。不用英文字母是可能的,但是天干地支,八卦乾坤,偏旁部首,千字文开篇,苏州码子一类简单符号体系总得选一个或者自创一个来适应硬件限制。

  • 那么什么时候可以像用英文一样在计算机上普及常用汉字,能够正常输入显示中文?90年代以后才有的事。从计算机发明到中文计算机历时四十五年。

为什么需要这么久?

首先当然是汉字的数量问题。十几个符号可以写汇编,几十个符号可以写机器码,但是汉字是成千上万的,92年的Unicode初版含有两万个中日韩汉字,对计算机的要求大于127位ASCII码显示英文两个数量级。

然后是字形的复杂度问题,汉字的笔画位置没有规律,显示和处理都非常复杂。

这是一个24px的汉字点阵,完整显示需要把右边的数据全都存下来。

而上一代的的16段米字数码管显示,存储一个字母的字形只需要"AAF0" 这样的四位十六进制数,小于单个汉字两个数量级。

 

所以存储介质降价增容到MB,计算能力翻几个数量级之前,连显示起码的几千个常用汉字都是物理上不怎么可能的事情。可以用手写汉字在外部描述程序运行,但是不能输入不能输出不能存储,这不叫编程语言,否则就没有哪国语言不是了。

而将汉语压缩到几十个笔画简单的字符,就需要像日本韩国的假名和谚文一样几乎抛弃原有的表意文字体系。最后得到的是什么不得而知,但一定不会是今天我们熟悉的中文。

所以可以看到一件很基本的事,计算机的编程语言是和硬件底层打交道的语言,必须服从于计算机硬件的物理限制,底层的硬件性能决定了你可以用什么方式去编程,写出什么样的代码。计算机不认得成千上万汉字的时候,就写不出中文程序。

如果中国人开发计算机和编程语言,早期的四五十年间计算机只允许简单编码和少量字符,也没有进行转译的能力,所以能输入计算机正常应用的编程语言必然不可能是完整的汉字和中文。即使是能存储显示和输入输出了,还有一段相当长的时间(在嵌入式等微小计算量应用中直到今天都还是这样)支持完整中文意味着性能上的大量损失。

按这个发展趋势,就算到最后表面都是中文了,内部的硬件底层和汇编语言层也不会是对计算机硬件过于复杂的表意文字,只是有可能不用英文字母而是用了别的简单符号体系。而表意语言编程依然会像现在的易语言之类一样,成为一张包在简单符号体系基础上的皮肤。

可能有人就会问:“编程语言的作用是什么呢?”

这么说吧,有种语言在计算机上不能输入,不能存储,不能处理,不能输出,你要说它能用来编程,那连印加的奇普都可以叫做编程语言了。只需要雇一个既懂结绳又懂汇编的程序员坐在黑盒子里人脑翻译,很简单吧。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值