- 23
- 0
- 约1.14万字
- 约 74页
- 2018-01-02 发布于湖北
- 举报
编译原理C2-绪论与文法
B 例:文法G:E→E+T|T T→T×F|F F→(E)|i 句型T+T×F的推导过程与语法树 E E T + T F T × E=E+T E E T + T F T × E=E+T =E+T×F =T+T×F =T+T =T+T×F 从语法树中看不出句型中的符号被替代的顺序 从左到右读出叶子结点得到的符号串,为文法的句型。也把该语法树称为该句型的语法树。 * 文法G: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 i E E + E E E × i i E E E × i E E + i i 文法的二义性(Ambiguity) * 定义: 如果一个文法存在某个句子对应两棵不同的语法树,则说这个文法是二义的。二义性文法存在某个句子,它有两个不同的最左(右)推导 文法G1: E→ E+E | E×E |(E) | i 文法G2: E→T|E+T T→F|T×F F→(E)| i 等价的无二义文法 * 为什么要避免文法产生二义性? 二义性的文法将给编译程序的执行带来问题。当编译程序对二义性文法生成的句子结构进行语法分析时,就会产生两种甚至更多种不同的理解。语法结构上的不确定性,必将导致语义处理上的不确定性。因此,希望描述语言的文法是无二义性的。 * 如何消除文法的二义性?(1) 方法一:不改变文法中原有的语法规则,仅加进一些语法的非形式规定。 如1:对于文法 G[E]: E → i E → E+E E → E*E E → (E) 规定运算符优先顺序和结合律,即*优先于+,+、*服从左结合。 如2:Pascal中二义性的消除是通过约定,如在符合if 语句中,else子句总是属于最近的尚无else子句的那个if语句。 * 如何消除文法的二义性?(2) 方法二:构造一个等价的无二义性的文法,即把排除二义性的规则合并到原有文法中,改写原有的文法。 如文法 G[E]: E → i E → E+E E → E*E E → (E) 将运算符的优先顺序和结合规则加到原有文法中,则可构造无二义性的文法 G’[E]: E → T|E+T T → F|T*F F → (E)|i * 二义性文法的改造 文法的二义性是不可判定的: 注意:文法的二义性性与语言二义性的区别 因为可能有两个不同的文法G1和G2,其中有一个是二义性的,但却有L(G1)=L(G2)。如果产生某上下文无关语言的每个文法都是二义性的,则说明该语言是先天二义性的,即该语言是二义性的。 * 短语和句柄 定义: 设αβδ是文法G[S]中的一个句型,如果有S=*αAδ且A=+β,则称β是句型αβδ相对于非终结符A的短语 特别的如有A=β,则称β是句型αβδ相对于规则A→β的简单短语。 一个句型的最左简单短语称为该句型的句柄(Handle)。 句柄就是“可归约串” * 用语法树求短语、句柄 短语:(子)树的末端结点形成的符号串是相对于(子)树根的短语。 简单短语(直接短语):简单子树的末端结点形成的符号串是相对于简单子树根的简单短语。 句柄:最左简单子树的末端结点形成的符号串是句柄。 例:对于文法G[S]:S::=AB A::=Aa|bB B::=a|Sb 求句型baSb的全部短语、直接短语和句柄? baSb为句型baSb的相对于S的短语; ba为句型baSb的相对于A的短语; a为句型baSb的相对于B的短语,且为直接短语和句柄; Sb为句型baSb的相对于B的短语,且为直接短语。 * 例:文法G[E]: E→E+T|T T→T×F|F F→(E)| i 的一个句型是 T×F+i,相应的语法树见右图: E E T + T T F × F i . 因为E=* T+i 且 T=T×F,所以T×F是句型相对于T的短语,且是相对于T→T×F的直接短语 . 因为E=* T×F+F 且 F=i,所以i是句型相对于F的短语,且是相对于F→i的直接短语 . 因为E=* E 且E=+ T×F+i,所以T×F+i是句型相对于E的短语 . T×F是最左直接短语,即句柄 * 文法G[E]: E→E+T|T T→T×F|F F→(E)|i 的一个句型 是T×F+i E E T + T T F × F i 虽然F+i是句型T×F+i的一
您可能关注的文档
最近下载
- 平凡的世界读书分享.ppt VIP
- 药物化学习题仉文升主编).pdf VIP
- 2025年山东济南高三一模数学试卷及答案.pdf VIP
- 2025年辽宁省委党校在职研究生招生考试(政治理论)历年参考题库含答案详解.docx VIP
- 保险双录标准话术.pptx
- 2025年辽宁省委党校在职研究生招生考试(法学)历年参考题库含答案详解.docx VIP
- 江苏省南通市2025年中考语文试卷(附答案解析).doc VIP
- 《人工智能在机械设计制造及其自动化中的实践》8900字.docx VIP
- 普传(POWTRAN)变频器PI500变频器使用说明书.pdf
- 最新部编版一年级数学下册教案(全册)表格式二次备课.doc VIP
原创力文档

文档评论(0)