“编译器。”
当黄建功说出这个词时,会议室里的温度仿佛又一次降了下来。
如果说创造“龙语”是一场充满了哲学思辨和灵感碰撞的“文科”考试。
那么打造“编译器”就是一场冰冷的、残酷的、容错率为零的“理科”竞赛。
在场的语言学家和逻辑学家们可以为“龙语”的优雅和简洁而欢呼。
但他们对于如何将“定义 杯子”这样一行人类能够理解的文本,转换成一长串由0和1组成的机器能够执行的指令,却一无所知。
这中间横亘着一条深不见底的鸿沟。
而负责填平这条鸿沟的只能是黄建功、钱学敏、孙立国这些真正懂机器的人。
“老黄,这件事,恐怕比我们想象的,要难得多。”
夜深人静,语法设计组的专家们都回去休息后,小型的核心会议再次召开。
钱学敏的脸上写满了忧虑。
她在黑板上画了一个简易的流程图。
“一个最基础的编译器,至少要包括三个部分。”
“第一,词法分析。”
她写下这四个字。
“它需要像一个精通语法的学生,逐字逐句地阅读我们的‘龙语’源代码。它要把‘定义’、‘杯子’、‘=’、‘500’这些独立的字符串,识别成一个个有意义的‘单词’,我们称之为‘Token’。”
“这一步,相对简单。我们可以预先定义好所有的关键字和符号,然后编写一个程序去进行匹配。”
“第二,语法分析。”
她继续写道。
“在得到一连串的‘单词’之后,编译器需要像一个老师一样,去检查这些单词组合起来的‘句子’,是否符合我们‘龙语’的语法规则。”
“比如,‘定义 杯子’是合法的。但‘杯子 定义’就是非法的。‘新建’后面必须跟着一个已经被‘定义’的类名,否则也是非法的。”
“这一步,会生成一棵‘抽象语法树’(AST)。它把我们平面的代码变成了一个立体的、有层级结构的树形图,清晰地表达了代码的逻辑关系。”
“这一步,非常复杂。我们需要用到大量的关于形式语言和自动机的理论。我们之前在‘天枢’内核里做的一些工作可能会有点帮助,但还远远不够。”
“第三,也是最难的,代码生成。”
钱学敏在流程图的最后画上了一个巨大的问号。
“在拥有了‘抽象语法树’之后,编译器就进入了它的最后一步——将这棵树,翻译成‘盘古之心’能够执行的,最底层的机器码。”
“这里面涉及到了无数的细节。如何为变量分配内存地址?如何管理函数调用的堆栈?如何优化寄存器的使用,让程序跑得更快?如何处理我们‘龙语’中‘新建’对象时那些复杂的内存分配和初始化操作?”
“这几乎等同于我们要用代码去模拟一个经验极其丰富、而且永远不会犯错的程序员,让他把我们用‘龙语’写的高级指令一句句地翻译成最原始的机器语言。”
“而我们现在……”
钱学敏的声音带着一丝苦涩。
“我们连一个这样的‘程序员’都没有。我们自己都还停留在用汇编甚至直接手写机器码的石器时代。”
“我们要如何去教一个‘程序’来做一件我们自己都做不好的事情?”
她的分析冷静而残酷。
她将“编译器”这个黑盒子剖开在了众人面前。
里面那些复杂、精密、环环相扣的齿轮,让每一个看到它的人都感到一阵头晕目眩。
孙立国听完,脸色已经变得煞白。
“如果……如果我们用最笨的办法呢?我们先不追求什么优化,什么效率。我们就做一个最简单的直译式的编译器。看到一句‘龙语’就翻译成一段固定的机器码。”
“你说的,是‘解释器’,不是‘编译器’。”钱学敏摇了摇头,“解释器是读一句,翻译一句,执行一句。效率极低,而且无法进行全局优化。对于‘龙语’这样一门要构建整个‘昆仑’世界的语言来说,解释器是远远不够的。”
“编译器必须一次性读完所有的源代码,通盘理解整个程序的逻辑,然后生成一个最优的、最高效的、可直接运行的二进制文件。这是我们的底线。”
“那……那这个工作量……”孙立国艰难地问道,“需要多久?”
钱学敏沉默了。
她看了一眼黄建功,眼神中充满了无奈。
黄建功替她回答了这个问题。
“如果我们从零开始,自己摸索,自己研究,自己试错……”
他伸出了三根手指。
“我最乐观的估计,三年。”
三年。
这个数字像一块巨石,压在每个人的心头。
他们刚刚从“二十年”的绝望中挣脱出来,以为找到了通往新世界的钥匙。
结果却发现要打造这把钥匙还需要整整三年。
而这还仅仅是“最乐观”的估计。
“三年……太久了……”孙立国喃喃道,“我们等不了那么久。国家也等不了那么久。”
是啊。
三年的时间对于一个瞬息万变的国家来说太宝贵了。
他们承担不起这样的时间成本。
“难道……我们就没有别的办法了吗?”
主控室里再次陷入了那种熟悉的令人窒息的绝望。
他们好像一直在一个巨大的循环里打转。
每当他们解决一个问题,就会发现一个更巨大更恐怖的难题正在前方等着他们。
这条通往神之领域的道路似乎根本没有尽头。
就在这时,一直沉默的李兴华突然弱弱地开口了。
他在这场会议里就像一个透明人。
他听不懂任何技术细节,但他能清晰地感受到这些华夏最顶尖的科学家们情绪上的巨大起伏。
他看到他们一次次燃起希望,又一次次陷入绝望。
他的心也跟着揪成了一团。
“那个……黄总,钱组长……”
他的声音在寂静的房间里显得有些突兀。
“我……我有一个问题,不知道该不该问。”
黄建功抬起头,布满血丝的眼睛看着他,勉强挤出一个比哭还难看的笑容。
“小李,你说吧。都到这个份上了,还有什么不能问的。”
李兴华咽了口唾沫,鼓起勇气说道:
“我们……我们遇到的所有问题,好像都是因为我们想用我们自己的办法去‘猜测’老师的想法。”
“我们猜‘对象’是什么,我们猜‘消息’是什么,现在我们又在猜该怎么去‘翻译’老师的语言。”
“我们……我们为什么……不能直接去问老师呢?”
“老师既然能创造出‘龙语’,那祂一定也知道该如何去‘翻译’它。说不定……说不定老师早就把那个‘编译器’的蓝图也一起准备好了。只是我们……我们太笨了,没有发现?”
李兴华的话说得断断续续,毫无逻辑。
像一个溺水者在胡乱地挥舞着手臂。
但在场的黄建功和钱学敏听到这番话,却如同被闪电击中一般猛地僵在了原地。
他们两个下意识地对视了一眼。
从对方的眼中他们都看到了同样的光芒。
那是混杂着震惊、羞愧、以及一丝……疯狂的希望。