- 2
- 0
- 约5.81千字
- 约 77页
- 2019-05-19 发布于江苏
- 举报
第4章 程序语言的设计 第2章和第3章分别讨论了程序设计语言的数据类型和控制结构,分别描述程序的数据结构和算法。 本章介绍语言的设计方法。 1 语言的定义 语言 = 语法 + 语义 语法:用以构造程序及其成分(语法单位)的规则的集合。 语义:用以规定语法正确的语法单位的含义的规则的集合。 1.1 语法 1.1.1 几个术语 (1) 字母表 语言允许使用字符的集合,其元素称为字符 (2) 符号 由字符组成的有限串(字符串) (3) 字汇表 由符号组成的集合,其元素称为字 (4) 词法规则 规定什么样的字符序列可以构成语言的有效符号(单词符号) (5) 语法规则 确定一个符号序列是否为一个句子,并提供句子的结构(什么样的符号序列是合法的) 语言的定义 语言的定义可以从生成(文法)和识别(语法图)的观点进行。 1.1.2 生成的观点 用文法来定义语言 (1) 一个简单英语句子的描述 I/Students study/run (2) 文法 句子→主语谓语 主语→I|Students 谓语→study|run (3) 语言 根据文法规则生成的所有句子的集合,称为语言。 标识符的文法 标识符→字母 标识符→标识符字母 标识符→标识符数字 字母→A|…|Z|a|…|z 数字→0|…|9 表达式的文法 表达式→标识符 表达式→(表达式) 表达式→表达式运算符表达式 运算符→+|-|*|/ 1.1.3 识别的观点 用语法图来定义的语言 (1) 语法图的构造 终结符x对应一个语法图 非终结符N对应一个语法图 N→?1|?2|…|?n对应一个语法图 ?→?1?2…?m对应一个语法图 ?→??|?对应一个语法图 (2) 识别原则 若一个终结符序列是合法的,那么,必须从语法图的入口边通过语法图而到达出口边,而且在通过的过程中,恰恰能识别该终结符序列。 (3) 语言 语法图能识别的所有终结符序列的集合,称为语言。 标识符的语法图 表达式的语法图 语法描述方法等价 文法和语法图是语言语法的等价表示。 文法从产生的观点来定义语言,更通用、更准确地给出语言的语法结构。 语法图以识别的观点定义语言,更直观、更清晰地给出语言的语法结构。 采用生成的方法还是采用识别的方法来定义语言,由语言的设计者确定。 1.1.4 语法描述的用途 (1) 表达语言设计者的意图和设计目标 (2) 指导语言的使用者编写正确的程序 (3) 指导语言的实现者编写语法检查程序来识别所有语法单位 1.2 语义 语义:定义语言合法句子的含义(即句子的作用和意义)的规则组合。 文法和语法图已成为语法描述的典型工具,但语义描述至今尚无人们普遍接受的典型描述工具。 许多语言仍采用自然语言描述语义。 本章的语言设计,采用自然语言来描述语义。 (下篇的)语言实现涉及到的语义,将以操作语义学的方法来描述。即以一个抽象机的行为来描述语言的各个结构的作用和意义。 抽象机GAM的组成 由存储器,控制器,处理器,指令指针ip组成。 存储器分为代码区和数据区。 抽象机GAM的模型 抽象机GAM的结构 代码区(代码存储器),存放程序指令,代码存储器的内容不允许被修改。 数据区(数据存储器),存放必要的信息和程序中的数据。 ip的内容是代码区存储单元的地址,该单元的内容是一条指令。 C[i]和D[i]表示相应存储区第i个单元。 ip:= ip+ 4 表示指针指向下一条指令,假定每条指令占4个存储单元(字节)。 GAM一旦启动,由专门的装入程序将一个要运行的程序装入代码存储器,并置 ip 指向该程序的第一条指令。 然后依次完成下述工作: (1)执行 ip 所指向的指令。 (2)修改 ip 的内容。若所执行的指令未修改ip,则ip+4,使之指向下一条指令。 (3)若ip 指向特殊的STOP指令,则终止执行,否则转回执行(1)。 假设 GAM 对各种程序设计语言所常用的运算符,如:+,-,*,/ ,>,<,= 等,都有相应的指令与之对应。 以GAM的操作行为来定义语言的语义,是基于已经“理解”GAM的语义。 因此,一旦用 GAM 的操作行为来定义语言结构的作用时,就知道了语言的意义。 2 文法 2.1 文法的定义 文法是描述语言语法结构的形式规则。 通用,准确,易于理解,描述能力强 2.1.1 文法的形式定义 G=(VT,VN , S , P) VT为终结符的非空有限集; VN为非终结符的非空有限集; S是文法的开始符号, S∈VN ; P为产生式的非空有限集。 产生式是一个有序偶对(?,?),记为: ?→? ?和?是由终结符、非终结符组成的符号串,但?至少应含有一个非终结符。即: ? ? V*VN V* ? ? V* 产生式的简化 ? → ?1 ? → ?2
原创力文档

文档评论(0)