字体:大 中 小
护眼
关灯
上一章
目录
下一章
第607章 逻辑的岔路!魔鬼的诞生!
第(1/3)页
“完成了?”
黄建功又惊又喜。
这才一周时间,“华夏”语言的规范就出来了?
钱学敏他们,是什么效率!
“快!拿来我看看!”
黄建功迫不及待地从联络员手中,接过了那份厚厚的,还散发着油墨香气的《华夏语言第一版设计规范》。
实验室里,所有的专家,也都好奇地围了过来。
他们也想看看,自己未来要“翻译”的,究竟是一门怎样的“神谕语言”。
黄建功翻开了第一页。
“华夏语言设计总则:以人为本,大道至简,优雅清晰……”
看到这十二个字,黄建功赞许地点了点头。
没错,这完全符合老师的点化。
他继续往下看。
“第一章:数据类型。本语言定义四种基本数据类型:整数(INTEGER)、浮点数(FLOAT)、字符串(STRING)、布尔(BOOLEAN)……”
“嗯,不错,严谨!”黄建功抚了抚眼镜。
“第二章:循环结构。本语言推荐使用FOR循环与WHILE循环,不推荐使用GOTO语句,以保证代码的结构化与可读性……”
“好!有远见!”黄建功的脸上,露出了笑容。
他仿佛已经看到,未来用“华夏”语言写出来的程序,会是何等的赏心悦目。
然而,当他翻到第三章,“运算符与表达式”时,他的眉头,微微皱了起来。
“第三点一节:自增与自减运算符。为简化代码,本语言引入++与--运算符。A++等价于A = A + 1,A--等价于A = A - 1……”
“嗯?”黄建功发出了一声轻咦。
A++?
这个设计,确实很简洁。
但是,对于编译器来说,这意味着,要增加一个全新的,对++这个双字符运算符的,特殊识别逻辑。
他隐隐感觉,事情好像没有那么简单。
他压下心中的一丝疑虑,继续往下看。
“第三点二节:复合赋值运算符。本语言引入+=、-=、*=、/=等复合赋值运算符。A += 10等价于A = A + 10……”
黄建功的眉头,皱得更深了。
又是一堆,新的双字符运算符。
这会大大增加他们“词法分析器”的复杂程度。
钱老他们,为了追求所谓的“简洁”,是不是有点……走得太远了?
但真正让他感到不安的,是接下来的一个章节。
“第四章:语句结构。第四点三节:表达式语句。本语言允许将一个独立的表达式,作为一个完整的语句。例如,A + B;本身就是一句合法的语句,尽管它可能没有实际意义……”
“什么?!”
黄建功失声叫了出来。
一个独立的表达式,也能算一个语句?
那A + B;和A = A + B;,编译器该如何区分?
这……这不是在给编译器,制造混乱吗?
“黄老,怎么了?”旁边的人,好奇地问道。
黄建功没有回答,他的脸色,变得无比凝重。
他有种非常不好的预感。
他翻到了最后一章,附录。
“附录A:关于IF语句的说明。本语言的IF语句,可以省略THEN关键字。例如,IF A > B PRINT "A更大"是合法的。”
“附录B:关于函数调用的说明。本语言的函数调用,可以省略括号。例如,PRINT "你好"等价于PRINT("你好")。”
“附录C……”
黄建功越看,手心越是冰冷。
他终于明白,问题出在哪里了。
钱学敏他们,这群搞理论的,为了追求所谓的“人性化”和“灵活性”,在语言里,加入了太多太多,模棱两可的,有歧义的语法!
在人看来,PRINT "你好"和PRINT("你好"),意思是一样的。
IF A > B PRINT "A更大"和IF A > B THEN PRINT "A更大",意思也是一样的。
人类的大脑,可以很轻松地,根据上下文,理解其中的含义。
但是,机器不行!
机器是死板的!
它的“语法分析器”,在解析IF A > B PRINT "A更大"这句代码时,会遇到一个致命的问题。
当它读到IF A > B之后,它期望下一个读到的,是一个明确的THEN关键字。
但是,它读到的,却是一个PRINT。
这个时候,它就“懵”了。
它不知道,这个PRINT,是属于IF语句的一部分呢,还是一个新的,独立的语句的开始?
这就是“语法歧义”!
一个,足以让整个编译过程,彻底崩溃的,致命的妖怪!
“完了……”
黄建功的手,开始颤抖。
那份设计规范,在他手里,不再是智慧的结晶,而像一个潘多拉的魔盒。
钱学敏他们,出于好心,为了让语言变得更“自由”,更“简单”。
却在无意中,释放出了一个,名为“歧义”的,逻辑上的妖怪!
他们亲手,为自己,也为编译器组,挖了一个,深不见底的巨坑!
“黄老?黄老!您没事吧?”
周围的专家,看到黄建功脸色惨白,额头冒汗,都吓了一跳。
“快!快去把钱老请过来!”黄建功的声音,嘶哑而急促,“出大事了!”
他知道,这门“华夏”语言,从它诞生的那一刻起。
就已经走上了一条,逻辑的岔路。
而这条路的尽头,不是通往神国的天梯。
是一个,由他们自己创造出来的,万劫不复的,逻辑深渊!
半小时后。
“编译器”攻关组的会议室,气氛紧张到了冰点。
钱学敏和几位“神谕语言”设计组的核心成员,匆匆赶到。
他们看到黄建功和一众编译器专家,个个脸色铁青,都感到有些莫名其妙。
“老黄,怎么了?火急火燎地把我们叫过来?”钱学敏笑着问道,脸上还带着一丝创造出完美作品的得意,“是不是被我们的设计,给惊艳到了?”
黄建功没有说话。
他只是拿起一支粉笔,走到黑板前,写下了一行,他们规范里定义的,“合法”代码。
IF A > B IF C > D PRINT "1" ELSE PRINT "2"
写完,他转过身,用一种极其压抑的目光,看着钱学敏。
“钱老,请问,这行代码,是什么意思?”
钱学敏看了一眼,不假思索地回答:“很简单啊。如果A大于B,那么,就再判断C是不是大于D。如果C也大于D,就打印‘1’。否则,就打印‘2’。”
“是吗?”
黄建功的嘴角,扯出一个比哭还难看的笑容。
“那为什么,不能是这样理解呢?”
“如果A大于B,那么,就执行后面的IF C > D PRINT "1"这个判断。”
“但是,如果A不大于B,那么,就执行ELSE PRINT "2&
(本章未完,请翻页)
记住手机版网址:m.lewenwx.cc
上一章
目录
下一章