小原文学网
首页 > 都市言情 > 1977年恢复高考心得体会 >

第180章 他的思维远远领先于常人

章节目录

  他没想到在国内,连彭远征这样顶尖高校的研究生都完全没有听说过。

  这样一来,他很快意识到自己刚才的话有些不妥,正要开口解释,旁边的陆怀民却先接了话。

  “陈博士,YACC的原理我们倒是不陌生,不过我们权衡之后,还是选择了手写递归下降。”陆怀民笑着说道:

  “YACC本质上是LALR(1)文法解析器生成器。它的优势很明显,快速、自动化,把语法规则写进去就能自动生成代码,省时省力。在通用场景下,它确实是个好工具。”

  此言一出,大伙儿都有些惊讶地看向陆怀民。

  特别是彭远征和郑国光,震惊之色更是溢于言表,他们完全没有听说过的工具,陆怀民居然了如指掌?

  陆怀民继续解释道:“不过YACC的局限也很明确。”

  他说着,走到实验室的小黑板前,拿起一支粉笔。

  “一是生成的代码可读性差,调试困难。自动生成的解析器,状态机展开之后动辄几千行,出了问题很难找到根源。二是灵活性不足,YACC适合处理标准的上下文无关文法,但对于我们这种工程应用,有很多非标准的需求。”

  他在黑板上画了一个简单的框图,一边画一边说。

  “就拿我们的后处理编译器来说。数控机床的G代码,看起来像标准指令,实际上每家厂商都有自己的一套方言。西门子的SINUMERIK系列用一种格式,法那科的用另一种格式……有些指令甚至不是严格意义上的编程语言。”

  “如果用YACC,每适配一套数控系统的G代码方言,就要重新写一套文法规则,重新生成一遍代码。而且一旦遇到那些非标准的指令,YACC的LALR框架就力不从心了。”

  “你说得没错。”陈杰森忽然由衷地笑了:

  “YACC确实有这些局限。我们用YACC,很多时候也要花额外的时间来绕过它的框架限制。但很少有人能在项目初期就想得这么清楚,多数人都是用上了才发现不对,然后再回头打补丁,最后代码堆得就很乱。”

  他看着陆怀民,心中也不由得感叹,对方确实不是浪的虚名之辈。

  “陆先生,”陈杰森继续感兴趣地问道,“你们这个后处理编译器,目标是要适配多少种数控系统?”

  “目前国内常见的,大概有七八种。西门子的SINUMERIK系列、法那科的FANUC系列、东德和苏联的几套老系统,再加上国内几家机床厂自己搞的简易数控。每一种的G代码方言都不一样,有的甚至连语法结构都完全不同。”

  他顿了顿,走到彭远征的终端前,指着屏幕上那几行代码说:

  “但我们不打算为每一种方言单独写一套编译器。那样做,十种方言就要维护十套代码,任何一个底层算法改了,十套代码全得跟着动。这样的工程对任何开发者来说都是是噩梦。”

  陈杰森微微皱起眉头:“那你们打算怎么做?”

  “分层编译。”陆怀民拿起粉笔,在黑板上又画了两层框图:

  “前端统一解析,生成一种中间表示;后端根据目标机床的G代码方言,把中间表示展开成具体的指令。前端不变,后端可插拔。加一种新方言,只需要写一个新的后端适配器。”

  这个思路说出来,陈杰森下意识地点了点头。

  分层编译这个概念,在国外学术界也是七十年代中后期才逐渐成熟起来的。

  UNIX系统里的可移植C编译器(PCC)是最早实践这一思路的项目之一,但在嵌入式编译器、尤其是工业控制领域,分层编译的应用还远未普及。

  而眼前这个陆怀民,不仅把这个思路想透了,而且已经开始在工程实践中落地了。

  他在思维上确实远远超过了常人,甚至远远超过了他在北京见到的“银河”的另一个开发者赵远航。

  难怪他能提出“开源社区”的框架并将之付诸实践。

  “中间表示层……”陈杰森继续追问:

  “你们准备怎么定义?是用三地址码,还是用抽象语法树?”

  “抽象语法树。”陆怀民又在黑板上画了一个树状结构:

  “三地址码适合通用计算,但对于数控加工这种场景,很多语义信息是嵌套的。比如一个循环指令……”

  陆怀民举了一个具体的例子,顺手在黑板上写了几行伪代码,解释循环体内刀位轨迹如何打包成子树,又如何在后端展开。

  彭远征在旁边听着,不由得张了张嘴。

  那天面试的时候,陆怀民跟他提过“分层编译”和“中间表示”,但当时只是引了个话头,没来得及展开。

  现在听陆怀民把这一整套思路完整地讲出来,他才真正意识到,陆怀民肚子里的货,远比他想象的多。

  而自己那天自以为“编译领域不输任何人”的想法,此刻想来,多少有些可笑。

  陈杰森听得也是连连点头。

  他不是没见过聪明的学生。

  MIT的本科生里,十九岁修完所有计算机核心课程、二十岁发顶会论文的天才,他也见过好几个。

  但陆怀民是见过的天才中尤为特殊也尤为出色的一个。

  他是在一片近乎荒芜的土地上,自己定义问题,自己搭建框架,自己带着一帮人干活。

  而且他做出的判断,放在MIT的实验室里,也是经得起推敲的。

  不过经过刚刚简单的交流,在陈杰森的判断中,陆怀民最恐怖的,还是他思维的领先程度,在这方面,他远远超越了常人。

  “陆先生,”陈杰森感慨道:

  “你知道吗,在来中国之前,我确实有一个疑问。我一直在想,你们是怎么在这样艰苦的条件下做出‘银河’系统的。今天看了你们的实验室,听了你们的技术方案,我算明白了。”

  他顿了顿,忽然笑了:

  “陆先生,你们是在追赶。但同时也是在选择一条更适合自己的路。这比盲目照搬要高明得多。”

  “陈博士过誉了。我们只是被实际问题逼到了墙角,逼出了这些笨办法。MIT在CAD/CAM领域的积累,才是真正值得我们学习的前沿。”

  “不,这可不是笨办法。”陈杰森摇摇头,忽然像想起了什么似的,看了一眼手表,又看向陆怀民,“陆先生,其实我这次来,除了参观交流之外,还有一些想法想和你单独聊聊。”

  “关于开源社区的运作机制,关于你们那套技术标准委员会的治理架构,马丁教授和我讨论过很多次。”

  “教授说,你们在开源模式和工程实践上的探索,给了他很大的启发。他也一直在思考,MIT在这些领域积累的东西,能不能用一种更有意义的方式发挥作用。他希望,我这次来,能代表他和你们取得联系并建立一些合作。”

  他顿了顿:

  “具体的事情有些复杂,一两句话说不清楚。如果方便的话,下午或者晚上,我们找个安静的地方单独聊聊。我相信,这个合作一旦达成,对你们接下来的研究一定会有实实在在的帮助。”

  陆怀民微微一怔,随即点了点头:“当然。我也很期待和陈博士深入交流。”

  钱振华在旁边一直没怎么说话,此时见时机正好,连忙笑着接口:

  “那就这么安排。下午我们在系里腾一间小会议室,你们二位好好聊聊。”

章节目录
书友推荐: 春城无处不飞花 末世危城 婚前婚后之大龄剩女 快穿:病娇的黑月光她甜又撩 全职科技树 谁能来救救我 狼王的九夜新娘:可可,快跑 我的系统能升级啊 傅少娇妻从天降 无名之町 征服仙门从收徒开始 重生之宠你不够 非常猎人 和阴冷太监结为对食后[穿书] 路小优君夜寒 穿书后我连女配都不是 被迫攻略反派黑莲花 冷宫玉颜醉帝心:九日皇后 许你一世如初安如初时域霆 禁地:扮演五条悟,队友琦玉悟空