第607章 逻辑的岔路!魔鬼的诞生!_四合院开局四八,八岁带妹逃荒 首页

字体:      护眼 关灯

上一章 目录 下一章

第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
加入书签我的书架

上一章 目录 下一章