��
(2) 二义性
��虽然语言的编译程序总是以一种固定的规则来解释语句,但有些语法规则可能会导致读者以不同的方式来理解语句,这就产生了心理上的二义性。
 
例题��例如,针对一个逻辑表达式:( A >= "0" and A <= "9" ),PASCAL语言规定关系运算符">="、"<="等的运算优先级低于逻辑运算符"and"的运算优先级,但FORTRAN语言正好相反,">= (.GE.)"、"<= (.LE.)"等的运算优先级高于逻辑运算符"and"的运算优先级。因此读者可能对这个逻辑表达式有不同的理解。
 
�� 另一种容易引起混淆的原因是:允许对缺省数据类型说明的标识符做非标准使用。例如,在FORTRAN语言中有个变量KDELTA, 按照缺省数据说明它应具有整数类型。然而,经过显式类型说明 REAL KDELTA,就赋予KDELTA以实型属性,于是由于心理上的混淆就容易出错。

��缺乏一致性和心理上的二义性往往同时存在。如果一个程序设计语言具有这些特性的消极方面,那么用这种语言编写出来的程序可读性就差,同时用这种语言编程也容易出错。
��