- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章节高级语言及其语法描述n
3 高级语言的分类 强制式语言 (Imperative Language) / 过程式语言 FORTRAN , C, Pascal 应用式语言(Applicative Language) / 函数式语言 LISP 基于规则的语言(Rule-based Language) Prolog 面向对象语言(Object-oriented Language) 编译感兴趣的问题是: 给定终极符x, 文法G, 求x ? L(G) ? 例:算术表达式的文法 E::= E+E | E*E | (E) | i 小 结 掌握符号串、文法、句型、句子和语言的定义 几个重要概念:语法树、文法的二义性等。 了解文法分类。 本 章 作 业 P36:6#,7#,8#, 9#, 10# 定义11:2型文法: P: U → u 其中 U∈VN, u∈V* 2型语言:L1 这种语言可以由下推自动机接受. 称为上下文无关文法。也即把U改写为u时,不必考虑上下文。 注意:2型文法与BNF表示相等价。 (右线性) P: U → T 或 U → Tw 其中 U、w∈VN T∈VT 3型语言:L3 又称正则语言、正则集合 这种语言可以由有穷自动机接受. 3型文法称为正则文法。它是对2型文法进行进一步限制。 (左线性) P: U → T 或 U → wT 其中 U、w∈VN T∈VT 定义12: 3型文法: 根据上述讨论,L0 L1 L2 L3 0型文法可以产生L0、L1、L2、L3,但2型文法只能产生L2,不能产生L1。 ∪ ∪ ∪ 5 语法树与二义性文法 1 推导与语法树 语法树:句子结构的图示表示法,通常表示成一棵倒立的树。 结点:符号 根结点:识别符号 中间结点:非终结符 叶结点:终结符或非终结符 边:表示结点间的派生关系。 Z U V a b c d 注意一个重要事实:文法所能产生的句子,可以 用不同的推导原则(使用产生式顺序不同)将其 推导出来。语法树的生成规律不同,但最终生成的语 法树形状完全相同。某些文法有此性质,而某些文法 不具此性质。 句型的推导及语法树的生成(自顶向下) 给定G[Z],句型w: 可建立推导序列,Z==w 可建立语法树,以Z为树根结点,每步推导生成语法树的一枝,最终可生成句型的语法树。 * 无符号整数 数字串 数字串 数字 数字 1 (1) (2) (3) (5) (4) 0 一般推导: 树与推导 句型推导过程? 句型语法树的生长过程 由推导构造语法树 1 从识别符号开始,自左向右建立推导序列。 由根结点开始,自上而下建立语法树。 P = {无符号整数 → 数字串 ; 数字串 → 数字串 数字 ; 数字串 → 数字 ; 数字 →0; 数字 →1; ………… 数字 →9; } Z = 无符号整数; 例:无符号整数的文法: G[无符号整数]=(VN,VT,P,E) VN={无符号整数,数字串, 数字} VT = {0,1,2,3,……9} 例:G[无符号整数] 句型10 [无符号整数] 无符号整数 数字串 数字串 == 数字串 数字 数字串 数字 == 0 数字串 0 == 数字 数字 0 == 1 10 == 最右推导 由语法树构造推导 2 自叶而根修剪子树的末端结点,直至把整棵树剪掉(留根),每剪一次对应一次归约。 从句型开始,自右向左地逐步进行归约,建立推导序列。 2 文法的二义性 定义 若对于一个文法的某一句子存在两棵不同的语法树, 则该文法是二义性文法,否则是无二义性文法。 换而言之,无二义性文法的句子只有一棵语法树,尽管推导过程可以不同。 下面举一个二义性文法的例子: G[E]: E:= E+E | E*E | (E) | i VN ={E} VT ={ +, * , ( , ) , i } 对于句子S=i+i * i ∈ L(G[E] ),存在不同的规范推导: E E E + E E * i i i E E E * E E
文档评论(0)