默认冷灰
24号文字
方正启体

第621章 新的维度之墙!手造神祇!

作者:来财来我们都发财本书字数:K更新时间:
    一种巨大的,沉闷的压力,开始笼罩在“编译器”攻关组所有人的心头。


    如果说,之前的失败,是因为“路线错误”,大家虽然痛苦,但心里还憋着一股“只要找到正确的路就能成功”的劲儿。


    那么现在,他们面临的,是另一种,更让人绝望的困境。


    他们,已经,站在了正确的道路上。


    可这条路,是一条,需要,用血肉之躯,去攀登的,万丈绝壁!


    “不管有多难,都必须干!”


    在短暂的沉寂后,黄建功,第一个,打破了压抑。


    他的眼中,闪烁着一种,近乎于悲壮的,决然。


    “老师,已经,为我们,指明了‘道’!”


    “如果,我们连,沿着‘道’,走下去的勇气,都没有!”


    “那我们,就真的,是一群,无可救药的,废物!”


    “没有工具,我们就自己造!”


    “没有捷径,我们就用最笨的办法,一步一步地,往前挪!”


    “我就不信,我们这几百个,全国最顶尖的大脑,还啃不下,这块硬骨头!”


    黄建功的这番话,像一针强心剂,重新,点燃了众人心中,那即将熄灭的火焰。


    对!


    不能放弃!


    老师,在天上看着呢!


    如果,连这点困难,都克服不了,他们,还有什么脸面,自称是“老师的学生”?


    “干!”


    “没错!跟它拼了!”


    “我就不信,用机器码,写不出一个,语法分析器!”


    团队的士气,被重新,鼓舞了起来。


    一场,名为“手造神祇”的,悲壮的攻坚战,正式打响。


    经过激烈的讨论,他们最终,选择了两种,主流的语法分析技术路线,兵分两路,同时进行。


    第一路,由黄建功,亲自带队。


    他们采用的,是一种,自上而下的分析方法,名为——“递归下降分析法”。


    这个方法的核心思想,非常直观。


    他们,为“宪法”中的,每一个“非终结符”(比如、),都编写一个,对应的函数。


    当,需要分析一个“赋值语句”的时候,就调用“分析赋值语句”这个函数。


    而“分析赋值语句”这个函数内部,又会去调用“分析标识符”和“分析表达式”的函数。


    “分析表达式”的函数,又会去调用“分析项”的函数……


    就这样,一层一层地,向下递归调用,直到,将整个代码,分析完毕。


    这个思路,听起来,很美。


    它,完美地,将复杂的语法规则,分解成了,一个个,独立的,函数模块。


    但是,当黄建功他们,真正开始,用机器码,编写这些,互相调用的函数时。


    他们,很快,就遇到了,一个,鬼魅般的,敌人。


    ——“左递归”。


    在他们的“宪法”中,有一条规则是:E -> E + T。


    一个“表达式”,可以由,另一个“表达式”,加上一个“项”,构成。


    这是一个,典型的,“左递归”定义。


    当,“分析表达式”的函数,被调用时,它的第一件事,就是,再去调用,它自己!


    “分析表达式” -> 调用“分析表达式” -> 调用“分析表达式”……


    结果,就是程序,陷入了一个,永不停止的,自我调用的,死循环!


    “轰!”


    第一台,用于测试的“盘古之心”原型机,因为,函数调用栈,被瞬间撑爆,冒出了一股青烟,彻底报废。


    黄建功,和他的组员们,目瞪口呆地,看着那台,烧毁的机器。


    他们,花了三天三夜,写出来的,几万行机器码。


    在运行的,第一毫秒,就,以一种,最惨烈的方式,宣告了,自我毁灭。


    “不行……这条路,走不通……”


    黄建功,喃喃自语。


    他发现,“宪法”的优美,和,现实编程的残酷,是两回事。


    有些,在数学上,看起来很美的定义,在计算机里,就是,一个,致命的陷阱。


    第一路,宣告失败。


    而另一路,则是由,钱学敏,这位数学泰斗,跨界支援。


    他们采用的,是一种,更加复杂,也更加强大的,自下而上的分析方法——“LR分析法”。


    这种方法,不依赖递归。


    它的核心,是,构建一张,巨大的,“分析表”。


    这张表,会告诉“语法分析器”,在当前状态下,读到,下一个符号时,应该执行什么操作(移入、规约、接受、或报错)。


    整个分析过程,就像一辆,在,预设好的,庞大轨道网络上,行驶的,小火车。


    只要,这张“分析表”,是正确的,那么,分析过程,就,绝对不会出错。


    这个方法,从理论上,就,完美地,避开了“左递归”的陷阱。


    看起来,似乎,是,通往成功的,康庄大道。


    于是,钱学敏,带领着一群,数学和逻辑学方面的天才,开始了,一项,堪称“浩瀚”的工程。


    ——手动,计算和绘制,那张,决定生死存亡的,“LR分析表”。


    他们,将“宪法”里的一百零八条规则,全部,转换成了,更底层的,“产生式”。


    然后,他们开始,计算,每一个“产生式”的,“项目集”。


    再根据“项目集”,去构建,“活前缀自动机(DFA)”。


    最后,根据这个,庞大的“自动机”,来,填写那张,最终的,“分析表”。


    这个过程,充满了,大量,繁琐到,令人发指的,纯粹的,数学计算。


    每一步,都不能有,丝毫的差错。


    一个微小的计算失误,就可能导致,整张表格,的逻辑,全部作废。


    钱学敏,和他的团队,就像一群,最虔诚的,中世纪修士。


    把自己,关在,与世隔绝的实验室里。


    用笔,和草稿纸,在一张,铺满了整个房间的,巨大坐标纸上。


    一个格子,一个格子地,计算和填写着,那张,通往神国的“地图”。


    时间,一天一天地,过去。


    那张“地图”,也,一点一点地,被填满。


    一周后。


    当他们,终于,完成了,整张表格的,初步绘制时。


    所有人都,被眼前的景象,给,震撼了。


    那张,铺在地上的坐标纸,足足有,一个篮球场那么大。


    上面,密密麻麻地,布满了,成千上万个,状态节点。


    和,数以十万计的,状态转移弧线。


    它们,交织在一起,形成了一张,比,人类大脑的神经网络,还要复杂无数倍的,逻辑迷宫!


    这,已经,不是一张“表格”了。


    这,是一面,由,纯粹的,逻辑和数学,构建起来的,新的,维度之墙!


    它,冰冷地,矗立在,所有人的面前。


    用一种,无声的语言,嘲笑着,凡人的,渺小和不自量力。


    他们,或许,真的,有能力,去,手造“神祇”。


    但是,他们,却,没有能力,去,驾驭,这个,由他们,亲手创造出来的,神祇。


    “这……这就是我们,算出来的,LR(1)分析表?”


    一名年轻的博士,看着眼前,那张,铺满了整个篮球场的,巨大的“逻辑迷宫”,声音,都在发抖。


    他的脸上,没有丝毫,大功告成的喜悦。


    只有,一种,看到了,超出自己理解范围之外的,恐怖事物时,所产生的,巨大的,恐惧。


    “是的。”


    钱学敏,跪坐在,这张巨大图纸的,中央。


    他的头发,比一周前,又白了许多。


    他的手里,还拿着,一支铅笔,和一块橡皮。


    整整七天七夜,他,和他的团队,几乎没有合眼。


    他们,以一种,近乎于自虐的,方式,完成了,这个,在人类历史上,从未有过的,壮举。


    ——纯手动,构建一个,包含了,一百多条语法规则的,语言的,完整LR分析表。


    “根据我的计算……”


    钱学敏的声音,干涩而嘶哑。


    “这张表,总共包含了,三千二百一十七个,状态。”


    “以及,超过,三十五万个,‘动作(Action)’和‘转移(Goto)’指令。”


    “如果,我们要,把这张表,用‘0’和‘1’的机器码,输入到‘盘古之心’里。”


    “它,所占用的存储空间,将会,超过,我们之前,那个,充满了补丁的,V0.1版本编译器的,十倍以上。”


    十倍!


    这个数字,像一记重锤,狠狠地,砸在,每个人的心上。


    他们,推倒重来,选择了,最严谨,最正确的道路。


    结果,换来的,是一个,比之前,那个“怪物”,还要,庞大十倍的,新的“怪物”?


    “这……这怎么可能?”


    有人,无法接受这个事实。


    “我们的语法,明明,已经,比之前,简洁了那么多!”


    “为什么……为什么,这张表,会,这么大?”


    “因为,‘简洁’,不等于,‘简单’。”


    钱学敏,苦笑了一下。


    他指着图纸上,一个,由,几十个状态节点,密集交织而成的,区域。


    “这是,处理‘表达式’的,核心区域。”


    “我们,虽然,只有‘加法’和‘乘法’,两种运算。”


    “但是,因为,要处理‘括号’的嵌套,以及,它们之间的,优先级关系。”


    “一个简单的表达式,A = (B + C) * D,在分析过程中,所可能产生的,状态组合,是,一个,天文数字!”


    “每增加,一条规则,每增加,一个运算符。”


    “这张分析表的大小,不是,线性增长的。”


    “而是,指数级的,爆炸!”


    指数爆炸!


    这个词,让所有,在场的,搞数学和逻辑的专家们,都,倒吸了一口凉气。


    他们,比任何人都清楚,这四个字,背后,所代表的,恐怖含义。


    它,代表着,一种,理论上可行,但在现实中,因为,计算量,过于庞大,而,根本无法实现的,绝境。


    “那……那我们,这七天,不是……”


    一名专家,失魂落魄地,跌坐在地上。


    “白干了?”


    是的。


    白干了。


    他们,用最虔诚的,苦修,亲手,绘制出了一张,通往神国的地图。


    结果,却发现,这张地图,本身,就是一个,他们,永远也,走不出的,迷宫。


    “不……还没有结束。”


    就在,所有人都,陷入绝望的时候。


    钱学敏,突然,站了起来。


    他的眼中,闪烁着,最后一丝,不甘的,疯狂。


    “这张表,虽然,庞大。”


    “但是,它是,正确的!是,无歧义的!”


    “我们,只是,缺少,把它,‘装进’盘古之心的方法!”


    “我们,可以,对它,进行,‘压缩’!”


    “我们可以,寻找,其中的,重复模式!我们可以,用,更高效的算法,来,存储它!”


    “我们,还可以,尝试,更先进的,LALR分析法!它,可以在,牺牲,极少部分,分析能力的情况下,大幅度地,减少,状态的数量!”


    钱学敏,像一个,输光了所有筹码的赌徒,红着眼睛,嘶吼着。


    他,不愿意,承认失败。


    他,还想,再搏一次!


    于是。


    接下来的两周。


    整个团队,又,投入到了,一场,更加疯狂的,战斗之中。


    他们,开始,尝试,对那张,巨大的“逻辑迷宫”,进行,优化和压缩。


    他们,发明了,各种各样,匪夷所思的,数据结构和算法。


    他们,不眠不休地,进行着,新一轮的,计算和推演。


    整个实验室,变成了一个,高速运转的,大脑。


    每一个专家,都是其中,一个,燃烧的,神经元。


    然而。


    他们,面对的,是“指数爆炸”这个,数学领域里,最冷酷,最无情的,规律。


    他们,所有的努力,所有的挣扎。


    在那,如同,宇宙法则般,不可撼动的,指数增长曲线面前。


    都显得,那么的,渺小,和,可笑。


    两周后。


    当他们,用尽了,所有的智慧,耗尽了,最后一丝力气。


    最终,得到的,LALR分析表。


    虽然,比之前,小了一些。


    但,它的状态数量,依然,是一个,令人绝望的,四位数。


    它,依然,是一头,以“盘古之心”那,可怜的,存储空间,根本,无法吞下的,巨兽。


    那一刻。


    所有的,疯狂和不甘,都,消失了。


    只剩下,一片,死寂的,绝望。


    钱学敏,瘫坐在,那张,画满了,无数计算公式的,草稿纸堆里。


    他,看着天花板,双眼,空洞无神。


    他,感觉自己,像一个,试图,用沙子,去,填平大海的,傻子。


    他,终于,承认了。


    有些,墙。


    是,凡人,用血肉之躯,永远也,撞不穿的。


    哪怕,这条路,是正确的。


    他们,也,走不过去。


    “仓颉”计划,第二次,停摆了。


    这一次的停摆,比上一次,更加彻底,更加沉重。


    上一次,他们是“知错能改”,虽然痛苦,但前路,似乎,还闪烁着希望的微光。


    而这一次,他们是在,一条,被证明是,绝对正确的道路上,活生生地,被“累死”的。


    这种,看得见,摸得着,却,永远无法到达的,绝望。


    像一团,浓得化不开的,阴云,笼罩在,整个西山实验区的上空。


    核心会议室里,烟雾,比上一次,还要浓。


    聂老总,黄建功,钱学敏,还有各个小组的负责人,围坐在一起,一言不发。


    每个人的面前,都摆着,那本,被视为“神之宪法”的,《华夏语言V2.0形式化文法定义》。


    和,另一份,厚得像砖头一样的,《LR(1)分析表状态集完全报告》。


    前者,代表着,完美的,理论。


    后者,代表着,残酷的,现实。


    它们,就像,天使和妖怪,被同时,摆在了桌上,形成了一种,无比讽刺的,对比。


    “我……申请,引咎辞职。”


    良久,钱学敏,第一个,开口了。


    他的声音,沙哑,干涩,充满了,一种,被彻底击垮的,疲惫。


    “我,作为一个数学家,竟然,会,一头撞死在,‘指数爆炸’这堵,最基础的,数学之墙上。”


    “我,没有能力,带领大家,走出这个迷宫。”


    “我,辜负了,老师的期望。”


    “我,是罪人。”


    他说完,就,站起身,准备,向聂老总,敬礼。


    “坐下!”


    黄建功,低吼了一声。


    “现在,说这些,有什么用?!”


    “辞职?辞职了,问题,就能解决吗?!”


    “这条路,是我们,一起选的!这个坑,是我们,一起挖的!”


    “要当罪人,我们,大家,一起当!”


    黄建功的语气,虽然严厉,但,谁都听得出来,那其中,蕴含的,兔死狐悲的,悲凉。


    他也,到极限了。


    他带领的,“递归下降”小组,在,烧毁了,三台原型机之后,也,宣告了,此路不通。


    他们,同样,被,“左递归”这个,看似简单,却,无法绕开的,理论幽灵,给,彻底锁死了。


    两条路,都走到了,绝境。


    整个“仓颉”计划,就像一艘,驶入了,百慕大三角的,巨轮。


    罗盘,失灵了。


    引擎,熄火了。


    所有人都,被困在了,一片,名为“算法复杂度”的,无边无际的,迷雾之海里。


    他们,又一次,迷路了。


    而且,这一次,他们,连,求救的信号,都不知道,该如何发出。


    该怎么说?


    “报告老师,我们,拿到了您给的,完美地图,但是,我们,没有,能走完地图的,交通工具?”


    “报告老师,我们,知道了,1+1=2,但是,我们,算不出来,一万个1,加起来,等于多少?”


    这,听起来,何其的,荒谬。


    何其的,可笑。


    “也许……也许,是我们,太急了。”


    一名年轻的专家,小声地,打破了沉默。


    “也许,老师的本意,就是,想让我们,用,十年,二十年,甚至,更长的时间,去,一点一点地,把这块骨头,啃下来。”


    “也许,这就是,一场,长达,一个世纪的,修行。”


    这个说法,让,在场的所有人,都,沉默了。


    是啊。


    也许,他们,真的,太心急了。


    他们,总想着,一步登天。


    总想着,在几个月内,就,完成,人家,可能,需要,几代人,才能完成的,伟业。


    可是……


    他们,等得起吗?


    国家,等得起吗?


    “盘古之心”,那颗,承载了,无数期望的,神之造物,还在,冰冷的机房里,静静地,沉睡着。


    它,在等待着,能够,唤醒它的,“灵魂”。


    难道,要让它,就这样,一直,等下去吗?


    “不!”


    聂老总,猛地,一拍桌子,站了起来。


    他,一直,没有说话。


    他在听,他在看,他在感受,这股,弥漫在,整个团队中的,绝望的情绪。


    直到,这一刻,他知道,自己,必须,做出决断了。


    “我们,没有,一百年!”


    “我们,甚至,没有,十年!”


    “最高层,给我们的期限,就是,一年!”


    “一年之内,我们,必须,让‘盘古之心’,展现出,它,应有的,价值!”


    聂老总的目光,如刀锋般,扫过,在场的每一个人。


    “我承认,我们,又一次,失败了。”


    “我们,高估了,自己的能力。也,低估了,从‘理论’到‘工程’的,巨大鸿沟。”


    “但是!”


    他加重了语气。


    “这,不代表,老师,是错的!”


    “这,只代表,我们,这群学生,太笨!”


    “笨到,连,老师出的,最基础的,应用题,都,做不出来!”


    “既然,我们,做不出来。”


    聂老总,深吸了一口气,仿佛,用尽了,全身的力气。


    他,转过头,看向了,门口,那个,从会议开始,就,一直,像一尊雕塑般,站着的,身影。


    李兴华。


    “那么,就,只能,再去,麻烦,老师一次了。”


    聂老总的声音里,充满了,一种,连他自己,都,不想承认的,巨大的,羞愧和无奈。


    “兴华同志。”


    “我知道,这,很残忍。”


    “但是,为了,这个国家,为了,我们,脚下这片土地。”


    “这个‘罪人’,只能,你来当了。”


    李兴华,闭上了眼睛。


    他,没有说话。


    只是,默默地,对着,聂老总,行了一个,标准的,军礼。


    然后,转身,走出了,会议室。


    门外,是,深沉的,看不到,一丝光亮的,黑夜。
(←快捷键) <<上一章 投推荐票 回目录 标记书签 下一章>> (快捷键→)