- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.3.2-语法树及二义性
2.3.2 语法分析树与二义性 用上下文无关文法描述程序语言 句型和语法树 一个句型对应的不同推导序列 文法二义性 有关文法的实用限制 (文法化简) 1.用上下文无关文法描述程序语言 E→i | E+E | E*E | (E) 语句 →条件语句|赋值语句|循环语句 赋值语句 →i:= E 条件语句 →if条件 then语句 | if条件〉then语句 else语句 说明语句 →var 变量列表:integer 变量列表 →i|变量列表, i 2. 句型和语法树 (推导树) 复习: 句型、句子、推导 语法树的引入 文法G: E→E+E| E*E| (E)| E 句型 (i*i+i) 补充练习 G[S]: S→aAS S→a A→SbA A→SS A→ba 构造句型aabbaa的语法树 补充: 定理 G为上下文无关文法,对于α≠ε,有S α, 当且仅当 G有以α为结果的一棵语法树。 上下文无关文法: 句型 ? 语法树 3.一个句型对应的不同推导序列 最左推导 最右推导 (规范推导) 最左归约 (规范规约): 最右推导的逆过程 最右归约: 最左推导的逆过程 规范句型: 由规范推导所得的句型称为规范句型。 4. 文法二义性 一个句型是否只对应唯一的一棵语法树? G: E→i | E+E | E*E | (E) 补充例: 句型: i*i+i P31例: 句型: (i*i+i) 二义 Ambiguous (1) 什么是文法的二义性 如果一个文法存在某个句子对应两棵不同的语法树,则说这个文法是二义的。 (2) 先天二义的语言 (补充) (3) 文法的二义性和语言的二义性 (4) 二义性的判定 (2) 先天二义的语言 (补充) 如果产生上下文无关语言的每一个文法都是二义的,则说此语言是先天二义的 . (3) 文法的二义性和语言的二义性 二者是不同的概念 例如: 两个等价的文法,一个是二义的,一个是非二义的,但产生的语言是相同的 (4) 二义性的判定 二义性问题不可判定 不存在一个算法,它能在有限步骤内,确切判定任给的一个文法是否为二义的 我们所能做的事是为无二义性寻找一组充分条件 存在性证明 只要找到一个句子, 该句子对应两个不同的语法树, 即证明该文法是二义的. 二义性证明举例: 证明以下文法是二义的 〈语句〉→ if〈条件〉then〈语句〉 | if〈条件〉then〈语句〉else〈语句〉 | 其他语句 5.有关文法的实用限制 (文法化简) 不含有害规则: P→P 每个非终结符P必须有用处 存在推导 S αPβ (可到达) 存在终结符串γ∈VT* , 使得 P γ (可终止) 补充例: 文法化简 补充练习:填空 只有1个、可能多个、一定多个 一个句型对应的语法树 ________ 一个句型对应的推导序列 ________ 一棵语法树对应的推导序列 ________ 一个句型对应的最左推导序列 ________ 一棵语法树对应的最左推导序列 ________ * YTU Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 补充例 PL0语言的语法描述 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. E ? (E) ? (E+E) ? (E*E+E) ? (i*E+E) ? (i*i+E) ? (i*i+i) E ( E ) E + E E * E i i i p31 语法树 (推导树) 开始符号 E
原创力文档


文档评论(0)