网站大量收购闲置独家精品文档,联系QQ:2885784924

《编译原理实践及应用》第2章高级语言设计基础素材.ppt

《编译原理实践及应用》第2章高级语言设计基础素材.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * 语言的设计与软件系统的设计类似 * * * * * * UV={aa00,aa11,bb00,bb11} * * * * * * * * * * * * * * * * * * * * * * * * * * * 最左推导在语法树中的表现主要是:总是沿最左分支替换到底,再是次左边…… 例3 : G = ({E}, {i, +, *, (, ) } , P , E) P: E ? E + E | E * E | ( E ) | i 表达式 (i+i)*i的推导过程: (1) E ? E*E ? (E)*E ? (E + E)*E ? (i + E)*E ?(i + i)*E ? (i + i)*i (2) E ? E*E ? E*i ? (E)* i ? (E + E)*i ? (E+ i)*i ?(i + i)*i 对给定的文法,定义的语言是由利用所有的产生式经过各种方式推导出所有可能的句子构成的,并没有规定推导使用产生式的顺序。 因此从一个句型到另一个句型(句子)的推导过程不是唯一的。 最左推导: 在整个推导过程中,任何一步推导α=β都是对α中最左边的非终结符进行替换。 最右推导: 在推导之前确定推导的顺序,是对句子进行确定性分析所必须的 例3: G = ({E}, {i, +, *, (, ) } , P , E) P: E ? E + E | E * E | ( E ) | i (i+i)*i的最左推导过程: E ? E*E ? (E)*E ? (E + E)*E ? (i + E)*E ?(i + i)*E ? (i + i)*i 最右推导过程: E ? E*E ? E*i ? (E + E)*i ? (E+ i)*i ?(i + i)*i 文法的二义性 语法树:推导的形式化表示,有助于理解句子语法结构的层次 每个结点都有一个标记,该标记属字母集中的一个符号,根由开始符号S标记。 当某个非终结符被它的某个候选式所替换时,就产生相应的下一层的结点,候选式中自左至右的每个符号对应一个新的结点,并标记它,画出其与父结点之间的连线。 例:对文法G = ({E}, {i, +, *, (, ) } , P , E) P: E ? E + E | E * E | ( E ) | i 句子(i+i)*i 的语法树: 在语法树的推导过程中的任何时刻,没有后代的端末结点自左至右排列起来就是一个句型 一棵语法树表示了一个句型很多可能的不同推导过程。(包括最左推导和最右推导) 例3: G = ({E}, {i, +, *, (, ) } , P , E) P: E ? E + E | E * E | ( E ) | i 句子 ( i * i + i)的语法树: (1) E ? E+E ? E*E+E ? i*E+E ? i*i+E ? i*i+i (2) E ? E*E ? i*E ? i*E+E ? i*i+E ? i*i+i 并不是任何情况下一个句型就唯一地对应一棵语法树。 定义:如果一个文法存在某个句子对应两棵不同的语法树,则说这个文法是二义的 对二义文法中的某个句子的分析不是唯一的,因此总是希望文法是无二义的。 但是二义文法有时也是有用的。 证明下述文法是二义文法。 例:设if语句S的文法G=({E,S},{if,then,else,a,e},P,S),其中P为: S?if E then S (1) S?if E then S else S (2) S?a (3) E?e (4) 推导(1):S ? if E then S ? if E then if E then S else S 推导(2):S ? if E then S else S ? if E then if E then S else S 文法的分类 文法有四种:设有G=(Vn,Vt,P,S),不同类型的文法只是对产生式的要求不同: 0型文法(短文文法): G的每个产生式α?β满足:α∈V+且α中至少含有一个非终结符,β∈V* 1型文法(上下文有关文法):如果G的每个产生式α? β均满足|β|=|α|,仅当S?ε除外,但S不得出现在任何产生式的右部 2型文法(上下文无关文法):G的每个产生式为A?β, A是一非终结符,β∈V* 3型文

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档