第130章 中文代码的浪漫
1980年秋,京城,红星软体研究所。
窗外的银杏叶黄了,金灿灿地铺了一地。
而在一间名为“仓頡”的绝密会议室里,气氛却像是一场没有硝烟的辩论赛。
“荒谬!简直是荒谬!”
拍桌子的是一位来自麻省理工学院的计算机教授,名叫史蒂芬。他是隨同ibm代表团来考察“龙芯”生態的顾问。
此时,他正指著黑板上的一行行方块字,脸涨得通红。
“计算机科学的基础是数学,而数学的通用语言是英语和希腊字母!你们试图用……用这种象形文字来写代码?这是对科学的褻瀆!这是在开歷史的倒车!”
史蒂芬的愤怒代表了当时西方学术界的主流观点。
在他们看来,ascii码是计算机世界的圣经。所有的程式语言,从汇编到c,从fortran到pascal,无一不是基於英语逻辑构建的。
想用中文编程?那不就是把if换成如果,把else换成否则吗?那是脱裤子放屁,毫无意义的汉化!
“史蒂芬教授,请坐。”
苏正坐在会议桌的对面,神色淡然。他手里端著紫砂茶杯,轻轻吹了吹浮在水面的茶叶。
“您说计算机语言必须是英语,是因为计算机是你们发明的。”
苏正放下茶杯,目光变得深邃,“但现在,晶片是我们造的,架构是我们定的。为什么规则……还要听你们的?”
“这不仅是规则的问题,是效率!”
史蒂芬反驳道,“英文单词有空格分隔,逻辑清晰。而中文……连词与词的界限都模糊不清。用中文写编译器,光是词法分析就能把cpu累死!”
“是吗?”
苏正笑了。
他转头看向身边的叶心仪,“心仪,给教授演示一下,什么叫……中文的效率。”
叶心仪点点头,打开了那台连接著大屏幕的“龙芯”工作站。
屏幕漆黑。
隨著她手指敲击,一行行亮白色的汉字代码,如同瀑布般流淌下来。
那不是简单的汉化。
那是一种全新的、从未见过的语法结构。
【程序名:沧海一声笑】
【定义:天地(屏幕),日月(循环),眾生(数组)】
入:主函数
设:天地之宽= 1024
设:眾生之数= 100
观:眾生皆苦(初始化数组)
若:眾生[某]>慾念
则:斩(刪除)
或者:
渡(移动)
终
嘆:时光荏苒(主循环)
復:天地
绘:眾生
止
出
隨著叶心仪的输入,现场变得鸦雀无声。
那些汉字,不再是冷冰冰的指令。
它们组合在一起,竟然產生了一种奇异的韵律感。
不像是在写代码,倒像是在写一首……古诗?或者一篇駢文?
“这……这是什么鬼东西?”史蒂芬看得目瞪口呆,“『观』?『若』?『嘆』?这些字在编译器里代表什么?”
“『观』代表遍歷(iterate)。”
叶心仪一边敲击键盘,一边冷冷地解释,“『若』是条件判断,『嘆』是无限循环,『渡』是內存拷贝。”
“这有什么意义?不就是换了个名字吗?”
“意义在於……信息密度。”
苏正站起身,走到黑板前,拿起粉笔画了一个方框。
“在英文里,描述一个『遍歷数组並刪除符合条件的元素』的逻辑,你需要写for,写if,写花括號,写一堆冗长的变量名。”
“但在中文里。”
苏正指著屏幕上那寥寥几行字,“一个字,就是一个世界。”
“中文是二维的象形文字。每一个汉字,都携带了比英文单词多得多的语义信息。在我们的『仓頡』编译器里,一个汉字指令,可以直接映射为龙芯架构底层的『宏指令』。”
苏正的声音提高了几分:
“也就是说,同样的功能,英文代码需要写100行,编译后生成500条机器码。”
“而中文代码,只需要写20行,编译后……只有300条机器码!”
“不可能!”史蒂芬大喊,“编译器的效率不可能相差这么大!”
“跑个分吧。”
苏正做了个请的手势。
测试项目:快速傅立叶变换(fft)。
本章未完,点击下一页继续阅读。