- 16
- 0
- 约1.64万字
- 约 79页
- 2016-12-29 发布于北京
- 举报
第四章 语法分析 该讲语法分析了! 这可是很重要的章节 S→abcS’| bcS’| cS’ S’→abcS’| ε Q → Rb|b R → Sa|a 5.化简文法 S→abcS’| bcS’| cS’ S’→abcS’| ε Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 五、回溯、提取左因子 为句子if E1 then S1 else S2构造一棵语法树 文法: stmt→if expr then stmt |S |if expr then stmt else stmt stmt if expr then stmt E1 if E2 then stmt 回溯 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 造成这种情况的原因是产生式具有相同的首符号,从而导致不清楚该用哪个来替换非终结符 可通过改写产生式来推迟这种决定,直到看见足够多的输入符号,可以作出正确选择为止 上例可改为: stmt→if expr then stmt S’ |S S’ → else stmt | ε Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. stmt if expr then stmt S’ E1 else stmt 提取左因子算法: 输入:文法G 输出:一个等价的提取了左因子的文法 方法:对于A→ αβ1| α β2 |…| α βn| γ 可改写为: A→ αA’| γ A’→ β1| β2 |…| βn Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 例:文法G(P): P →(Q)|aP|a Q →Q ,P|P 试消除回朔 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 六、FIRST与FOLLOW集 1.FIRST集 回朔和左递归搞的人真烦哪! 怎样才能做到每次选的产生都正确呢? 郁闷哪! FIRST( α )={a| α =a… ,a∈VT} 如果α = ε 则 ε ∈ FIRST( α )。 例: stmt→if expr then stmt S’ S’ → else stmt S’ → ε 定义:FIRST( α)是由α推导出的所有的第一个终结符号组成的集合,即: Ev
原创力文档

文档评论(0)