易验证性 和易读、易写相关的概念是程序正确性或程序验证。 多年经验表明,理解每条程序语言语句是容易的,创建正 确程序的整个过程却是困难的。 因此,需有技术,使得能数学地证明程序是正确的。 易翻译性 即易于翻译成可执行形式。 易读性和易写性是面向程序员的需要。易翻译性(关键是 结构的正则性)是面向翻译器(处理被写成的程序)的需 要 如LISP程序,不易读、也不易写、但易于翻译,主要由于 其语法简单且正则 当特殊语法结构增加,将导致翻译困难,如 COBOL,允许 大量的语句和声明形
•易验证性 和易读、易写相关的概念是程序正确性或程序验证。 多年经验表明,理解每条程序语言语句是容易的,创建正 确程序的整个过程却是困难的。 因此,需有技术,使得能数学地证明程序是正确的。 •易翻译性 即易于翻译成可执行形式。 易读性和易写性是面向程序员的需要。易翻译性(关键是 结构的正则性)是面向翻译器(处理被写成的程序)的需 要。 如LISP程序,不易读、也不易写、但易于翻译,主要由于 其语法简单且正则。 当特殊语法结构增加,将导致翻译困难,如COBOL,允许 大量的语句和声明形式
没有含混性 含混性是语言设计中的一个中心问题 个语言定义理想地为每个语法结构提供唯一的意义 而含混性结构允许两个或多个不同解释。通常不是由个体 程序元素的结构产生,而是由于不同结构的交迭 例如 if Boolean exp then statement else statement2 If Boolean exp then statement1 当两种形式组合时,有可能出现二义情况。 Fortran中,A(I,J)可能是数组元素,也可能是函数调用 事实上,上面提到的含混在语言中均有解决方案
•没有含混性 含混性是语言设计中的一个中心问题。 一个语言定义理想地为每个语法结构提供唯一的意义。 而含混性结构允许两个或多个不同解释。通常不是由个体 程序元素的结构产生,而是由于不同结构的交迭。 例如: if Boolean exp then statement1 else statement2. If Boolean exp then statement1 当两种形式组合时,有可能出现二义情况。 Fortran中,A(I,J)可能是数组元素,也可能是函数调用。 事实上,上面提到的含混在语言中均有解决方案
条件语句的两种不同解释: Boolean expression Boolean expression alse false Boolean expression Statement Boolean expression Statement Statement Statement
条件语句的两种不同解释:
例:因组合而形成的悬空else: If Boolean expl then if Boolean exp2 then stat I else stat2 Algol解决方案:改变语法,引入分界符 begin.end。 Ada解决方案:每个i语句必须以 end if分界符结尾。 C和 Pascal解决方案:从二义结构中仼选一种解释。对本例 而言,最后的else总是和最近的then配对 FORTRAN中函数调用和数组引用的二义性由规则解决: A(I,J)被视为函数调用,如果没有数组A的声明。但这个假 定只能在程序装载、链接时被检查。 Pascal中区分二者的方法是使用不同的括号,如:[.]用于 界定数组参数,(.)用于界定函数调用的参数
例:因组合而形成的悬空else: If Boolean exp1 then if Boolean exp2 then stat1 else stat2 Algol解决方案:改变语法,引入分界符begin…end。 Ada解决方案:每个if语句必须以end if分界符结尾。 C和Pascal解决方案:从二义结构中任选一种解释。对本例 而言,最后的else总是和最近的then配对。 FORTRAN中函数调用和数组引用的二义性由规则解决: A(I, J)被视为函数调用,如果没有数组A的声明。但这个假 定只能在程序装载、链接时被检查。 Pascal中区分二者的方法是使用不同的括号,如:[…]用于 界定数组参数,(…)用于界定函数调用的参数
语言的语法元素 语言的语法风格由各种基本语法元素的选取所决定 字符集 字符集的选择是语言设计的第一件事 已有一些标准字符集,如:ASCI码。通常是选择一个标 准的字符集。 但也有不标准的,如APL。 字符集的选择对确定可被用于语言实现的ⅣO设备的类型 是非常重要的。如:C的字符集可用于大多数O设备。 而APL的字符集则不能直接用于大多数O设备。 通常用8位来表示字符(60年代早期用6位),这似乎是 足够的。但是,随着计算机产业的国际化进程,可能16 位表示是必需的(可有65536个字符)
语言的语法元素 语言的语法风格由各种基本语法元素的选取所决定。 •字符集 字符集的选择是语言设计的第一件事。 已有一些标准字符集,如:ASCII码。通常是选择一个标 准的字符集。 但也有不标准的,如APL。 字符集的选择对确定可被用于语言实现的I/O设备的类型 是非常重要的。如:C的字符集可用于大多数I/O设备。 而APL的字符集则不能直接用于大多数I/O设备。 通常用8位来表示字符(60年代早期用6位),这似乎是 足够的。但是,随着计算机产业的国际化进程,可能16 位表示是必需的(可有65536个字符)