- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译程序的设计原理与实现 如何让计算机 认识、理解 和 执行 高级程序设计语言 ? 第 2 章 形式语言基础 计算机处理语言,首先应考虑语言的形式化、规 范化,使其具有可计算性和可操作性;这就是形式语 言理论研究的问题。 形式语言诞生于1956年,由chomsky创立。通常, 语言研究至少涉及三个方面:语法、语义和语用; 这里仅侧重于语法的研究。 ※ 形式语言的基本观点是 : 语言是符号串之集合! 第 2 章 形式语言基础 2.1 形式语言是符号串集合 2.2 形式语言是由文法定义的 2.3 主要语法成分的定义 2.4 两类特性文法 2.5 文法变换方法 2.6 关于形式语言的分类问题 【内容提要】 2.1 形式语言是符号串集合 【形式语言】是字母表上的符号,按一定的 规则组成的所有符号串集合;其中的每个符号串 称为句子。 字母表 -- 元素(符号)的非空有限集合; 符号串 -- 符号的有限序列; 符号串集合 -- 有限个或者无限个符号串组成的集合; 规 则 -- 以某种形式表达的在一定范围内共同遵守的章程和制度;这里,指符号串的组成规则。 形式语言概念示例: 【例2.1】 L1={ 00,01,10,11 }; 字母表∑1= {0,1}, 句子有:00,01,10,11 【注】 ⑴ b0=?(空符号串),b1=b,b2=bb,b3=bbb,… ⑵ L1 为有限语言; L2 为无限语言。 2.1.1 符号串(集合)的运算 1. 连接:?.? = ?? 如 a.b=ab 2.1.1 符号串(集合)的运算(续1) 2.1.1 符号串(集合)的运算(续2) 1.乘积: AB={xy |x?A 且 y?B} 符号串集合运算示例: 【例2.3】 设 A={a,b},B={c,d} 则 A+B={a,b,c,d} 则 AB={xy|x?A,y?B}={ac,ad,bc,bd} 符号串集合运算示例(续): 【例2.5】 设 A={a,b}, A* = ? ∵ A* = A0∪A1∪A2∪…∪An∪… A0 ={?}; A1 = A ={a,b}; A2 = A.A={a,b}.{a,b}={aa,ab,ba,bb}; A3 = A.A2={a,b}.{aa,ab,ba,bb} ={aaa,aab,aba,abb,baa,bab,bba,bbb}; … ∴ A* = { x | x=(a|b)n ,n≥0 } 2.1.2 符号串集合的文法描述 【例2.5】 L ={ abnc | n≥0 }, 字母表:∑= {a,b,c}; 展开:L ={ac,abc,abbc,abbbc,… } ⑴ S,A — 定义的对象(S 句子,最大的定义对象,又 称为开始符号; A为句型aAc的短语), ⑵ a,b,c -- 为字母表∑中的符号;ε- 空符号串。 ⑶ - ,| -- 为描述符号( - 定义为; | 或者是) 规则应用说明示例: 从开始符号出发,对符号串中的定义对象,采用推导的方法(用其规则右部替换左部)产生新的符号串,如此进行,直到新符号串中不再出现定义的对象为止,则最终的符号串就是一个句子。 【句子产生过程】(= 推导算符): 2.2 形式语言是由文法定义的 【定义】 文法(grammar)是规则的有限集, 其中的上下文无关文法可定义为四元组: G(Z)=(VN, VT, Z, P) VN : 非终结符集(定义的对象集,如:语法成分等); VT : 终结符集(字母表); Z : 开始符号(研究范畴中,最大的定义对象); P : 规则集(又称产生式集); 2.2 形式语言是由文法定义的(续3) 【注意】 提供了规则集,就相当给出了一个文法: 【例2.6】标识符的文法 【标识符】 指字母开头的字母、数字序列。 则 VN ={I(标识符),A(标识符尾))}; VT ={? (字母),d(数字)}; Z = I ; P : ※标识符文法所定义的语言求解: 上面构造的 标识符文法属于 正规文法(定义在后)类, 正确性检验较容易;下面给出一个算
文档评论(0)