的最左推导与规范推导(最 右推导)比较 最右推导(规范推导 ht最左推 => - list- digit t dig list digit-digit+ digit =>-0+2 9-digit digit list-5+2 9-5+ digit -5+2 9-5+2 -5+2 list -> list digit list digit digit digit->0||||||||
9-5+2的最左推导与规范推导(最 右推导)比较 最左推导 最右推导(规范推导) list => list + digit list => list + digit => list - digit + digit => list + 2 => digit - digit + digit => 9 - digit + digit list -> list + digit | list – digit | digit digit -> 0 | 1| 2|3|4|5|6|7|8|9 => 9 - 5 + digit => 9 - 5 + 2 => list – digit + 2 => list – 5 + 2 => digit – 5 + 2 => 9 - 5 + 2
最左归约和最右归约 与推导相反的过程称为归约 ■最归约是最推导的逆过程 ■最归约是最推导的逆过程 ■关于归约,我们将在自底向上的语法分析 章节详解
最左归约和最右归约 ◼ 与推导相反的过程称为归约 ◼ 最左归约是最右推导的逆过程 ◼ 最右归约是最左推导的逆过程 ◼ 关于归约,我们将在自底向上的语法分析 章节详解
文法二义性 文法([m为二义性文法 string -> string t strip string-string 101112|3|4156|7|819 因为有1棵以上的分析树对应 G[string]在+;运算符的左结合性问题上出现了二义性
文法二义性 文法G[string]为二义性文法 string -> string + string | string - string | 0|1|2|3|4|5|6|7|8|9 因为有1棵以上的分析树对应 大家动手画一下9-5+2 G[string]在+,-运算符的左结合性问题上出现了二义性
文法二义性 给定文法GS s-> if E then s LIfE th en s eise E1hcnE2hcS1S2,是G的合法 句型,但存在不同的解释,即有1棵以上的 G树与对座合任南简望苗现 法 了公义性
文法二义性 给定文法G[S]: S -> if E then S | if E then S else S | N if E1 then if E2 then S1 else S2,是G[S]的合法 句型,但存在不同的解释,即有1棵以上的 分析树与之对应,所以G[S]为二义性文法。 G[S]在else与then结合性的问题上出现了二义性
文法二义性 定某文法G,若存在某句子或句型w,与 w对应的分析树(语法树)不只一个,则称 G为二义性文法。 ■或者说,与w对应的最左推导不只一个 或者说,与w对应的最右推导不只一个 我们在设计文法时,应努力避免二义性
文法二义性 ◼ 给定某文法G,若存在某句子或句型w,与 w对应的分析树(语法树)不只一个,则称 G为二义性文法。 ◼ 或者说,与w对应的最左推导不只一个 ◼ 或者说,与w对应的最右推导不只一个 ◼ 我们在设计文法时,应努力避免二义性