1980年秋,京城,红星软体研究所。
窗外的银杏叶黄了,金灿灿地铺了一地。
而在一间名为“仓頡”的绝密会议室里,气氛却像是一场没有硝烟的辩论赛。
“荒谬!简直是荒谬!”
拍桌子的是一位来自麻省理工学院的计算机教授,名叫史蒂芬。他是隨同ibm代表团来考察“龙芯”生態的顾问。
此时,他正指著黑板上的一行行方块字,脸涨得通红。
“计算机科学的基础是数学,而数学的通用语言是英语和希腊字母!你们试图用……用这种象形文字来写代码?这是对科学的褻瀆!这是在开歷史的倒车!”
史蒂芬的愤怒代表了当时西方学术界的主流观点。
在他们看来,ascii码是计算机世界的圣经。所有的程式语言,从汇编到c,从fortran到pascal,无一不是基於英语逻辑构建的。
想用中文编程?那不就是把if换成如果,把else换成否则吗?那是脱裤子放屁,毫无意义的汉化!
“史蒂芬教授,请坐。”
苏正坐在会议桌的对面,神色淡然。他手里端著紫砂茶杯,轻轻吹了吹浮在水面的茶叶。
“您说计算机语言必须是英语,是因为计算机是你们发明的。”
苏正放下茶杯,目光变得深邃,“但现在,晶片是我们造的,架构是我们定的。为什么规则……还要听你们的?”
“这不仅是规则的问题,是效率!”
史蒂芬反驳道,“英文单词有空格分隔,逻辑清晰。而中文……连词与词的界限都模糊不清。用中文写编译器,光是词法分析就能把cpu累死!”
“是吗?”
苏正笑了。
他转头看向身边的叶心仪,“心仪,给教授演示一下,什么叫……中文的效率。”
叶心仪点点头,打开了那台连接著大屏幕的“龙芯”工作站。
屏幕漆黑。
隨著她手指敲击,一行行亮白色的汉字代码,如同瀑布般流淌下来。
那不是简单的汉化。
那是一种全新的、从未见过的语法结构。
【程序名:沧海一声笑】
【定义:天地(屏幕),日月(循环),眾生(数组)】
入:主函数
设:天地之宽= 1024
设:眾生之数= 100
观:眾生皆苦(初始化数组)
若:眾生[某]>慾念
则:斩(刪除)
或者:
渡(移动)
终
嘆:时光荏苒(主循环)
復:天地
绘:眾生
止
出
隨著叶心仪的输入,现场变得鸦雀无声。
那些汉字,不再是冷冰冰的指令。
它们组合在一起,竟然產生了一种奇异的韵律感。
不像是在写代码,倒像是在写一首……古诗?或者一篇駢文?
“这……这是什么鬼东西?”史蒂芬看得目瞪口呆,“『观』?『若』?『嘆』?这些字在编译器里代表什么?”
“『观』代表遍歷(iterate)。”
叶心仪一边敲击键盘,一边冷冷地解释,“『若』是条件判断,『嘆』是无限循环,『渡』是內存拷贝。”
“这有什么意义?不就是换了个名字吗?”
“意义在於……信息密度。”
苏正站起身,走到黑板前,拿起粉笔画了一个方框。
“在英文里,描述一个『遍歷数组並刪除符合条件的元素』的逻辑,你需要写for,写if,写花括號,写一堆冗长的变量名。”
“但在中文里。”
苏正指著屏幕上那寥寥几行字,“一个字,就是一个世界。”
“中文是二维的象形文字。每一个汉字,都携带了比英文单词多得多的语义信息。在我们的『仓頡』编译器里,一个汉字指令,可以直接映射为龙芯架构底层的『宏指令』。”
苏正的声音提高了几分:
“也就是说,同样的功能,英文代码需要写100行,编译后生成500条机器码。”
“而中文代码,只需要写20行,编译后……只有300条机器码!”
“不可能!”史蒂芬大喊,“编译器的效率不可能相差这么大!”
“跑个分吧。”
苏正做了个请的手势。
测试项目:快速傅立叶变换(fft)。
左边屏幕:c语言版本,由史蒂芬亲自编写,优化到了极致。
右边屏幕:仓頡语言版本,由叶心仪现场赋诗一首。
“开始!”
隨著回车键按下。
两台配置完全相同的“龙芯”电脑开始疯狂运转。
进度条飞快地向前冲。
一秒。
两秒。
滴!
右边的屏幕率先弹出了结果:耗时:1.24秒。
而左边的屏幕,还在在那儿转圈。
直到1.8秒后,才弹出结果。
1.24 vs 1.8。
快了接近50%!
“这……这不科学……”
史蒂芬瘫坐在椅子上,满脸冷汗,“为什么?为什么会这么快?”
“因为『意境』。”
叶心仪合上电脑,淡淡地说道,“c语言关注的是『怎么做』(how),它需要一步步教傻瓜cpu去搬砖。”
“而仓頡语言关注的是『做什么』(what)。中文的语法结构,天生就包含了对整体逻辑的描述。我们的编译器能读懂代码的『意境』,从而直接调用cpu內部的並行计算单元。”
她指了指脑子:
“在龙芯的架构里,我们预埋了专门处理『汉字逻辑』的微指令集。这,就是主场优势。”
苏正看著彻底沉默的西方代表团,心中涌起一股强烈的快意。
这就是文化自信。
谁说代码必须是英文的?
谁说逻辑必须是线性的?
几千年前,老祖宗用文言文能描述宇宙万物。今天,我们用汉字代码,一样能构建数字世界!
而且,构建得更美,更快,更强!
“苏先生……”
许久,ibm的代表终於开口了,语气中少了几分傲慢,多了几分敬畏,“这套……『仓頡』语言,能授权给我们吗?”
“当然。”
苏正微笑著点头,“不过,要想学仓頡,得先学《说文解字》。我想,各位回去后,得给你们的程式设计师报个中文补习班了。”
“另外……”
苏正指了指会议室墙上掛著的一幅字:【道生一,一生二,二生三,三生万物】。
“这就是二进位的起源。其实,在这个领域,我们才是祖师爷。”
……
送走外宾后,会议室里爆发出了一阵欢呼。
年轻的华夏程式设计师们激动得热泪盈眶。
曾几何时,他们为了学编程,不得不抱著厚厚的英汉词典,死记硬背那些枯燥的单词。integer,float,pointer……每一个单词都是一道门槛,拦住了无数有天赋但英语不好的华夏少年。
但今天。
那个玻璃天花板,碎了。
“苏部长!我想试试!”
一个戴著眼镜的男生衝到电脑前,“我想用仓頡写个……写个贪吃蛇!”
“写!”
苏正大手一挥,“不仅要写贪吃蛇,还要写作业系统,写办公软体,写游戏!从今天起,我们的屏幕上,不仅要有汉字的界面,还要有汉字的灵魂!”
叶心仪站在苏正身边,看著那些兴奋的年轻人。
“你把这群孩子放出来了。”她轻声说道,“你知道这意味著什么吗?”
“意味著什么?”
“意味著以后,西方黑客想破解我们的代码,得先去考个中文六级。”
叶心仪难得地开了个玩笑,“而且,他们永远也读不懂,为什么我们在变量名里藏了一句『落霞与孤鶩齐飞』。”
苏正大笑。
是啊,这就是中文代码的浪漫。
它是理性的,也是感性的。它是逻辑的,也是诗意的。
它让冰冷的硅基晶片,第一次拥有了温度。
“心仪。”
苏正收起笑容,看向窗外,“地基打好了,柱子立起来了。接下来,该盖房子了。”
“你是说……”
“图形界面。”
苏正从口袋里掏出那个从硅谷带回来的简陋滑鼠。
“有了仓頡语言的高效率,我们终於可以在这颗算力还不够强大的晶片上,跑起来那个……真正属於未来的界面了。”
“下一步,我们要让视窗……提前十年,在华夏诞生。”
……