四合院:大国重工,手搓核聚变

第130章 中文代码的浪漫


    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……每一个单词都是一道门槛,拦住了无数有天赋但英语不好的华夏少年。
    但今天。
    那个玻璃天花板,碎了。
    “苏部长!我想试试!”
    一个戴著眼镜的男生衝到电脑前,“我想用仓頡写个……写个贪吃蛇!”
    “写!”
    苏正大手一挥,“不仅要写贪吃蛇,还要写作业系统,写办公软体,写游戏!从今天起,我们的屏幕上,不仅要有汉字的界面,还要有汉字的灵魂!”
    叶心仪站在苏正身边,看著那些兴奋的年轻人。
    “你把这群孩子放出来了。”她轻声说道,“你知道这意味著什么吗?”
    “意味著什么?”
    “意味著以后,西方黑客想破解我们的代码,得先去考个中文六级。”
    叶心仪难得地开了个玩笑,“而且,他们永远也读不懂,为什么我们在变量名里藏了一句『落霞与孤鶩齐飞』。”
    苏正大笑。
    是啊,这就是中文代码的浪漫。
    它是理性的,也是感性的。它是逻辑的,也是诗意的。
    它让冰冷的硅基晶片,第一次拥有了温度。
    “心仪。”
    苏正收起笑容,看向窗外,“地基打好了,柱子立起来了。接下来,该盖房子了。”
    “你是说……”
    “图形界面。”
    苏正从口袋里掏出那个从硅谷带回来的简陋滑鼠。
    “有了仓頡语言的高效率,我们终於可以在这颗算力还不够强大的晶片上,跑起来那个……真正属於未来的界面了。”
    “下一步,我们要让视窗……提前十年,在华夏诞生。”
    ……