编译原理与技术练习题汇总 下载本文

《编译原理与技术》练习题 9

练习 5

5.1 设文法G5.10[E]为 E → E+T | E-T | T T → T*F | T/F | F F → F↑P | P P → (E) | i

求以下句型的短语、直接短语、素短语、句柄和最左素短语: (1)E-T/F+i (2)E+F/T-P↑i (3)T*(T-i)+P (4)(i+i)/i-i

5.2 根据下列优先关系矩阵计算其优先函数,并说明优先函数是否存在。

5.3 对于文法G5.11[S] S → (R) | a | b R → T T → S; T | S

(1)计算G5.11 [S]的FIRSTTV和LASTTV;

(2)构造G5.11 [S]的优先关系表,并说明G5.11 [S]是否为算符优先文法; (3)计算G5.11 [S]的优先函数。

5.4 对于文法G5.12 [S] S → S;G | G G → G(T) | H H → a | (S) T → T+S | S

《编译原理与技术》练习题 10

(1)构造G5.12 [S]的算符优先关系表,并判断G5.12 [S]是否为算符优先文法; (2)给出句型a(T+S);H;S的短语、直接短语、句柄、素短语和最左素短语; (3)分别给出(a+a)和a;(a+a)的分析过程,并说明它们是否为G5.12 [S]的句子; (4)给出(3)中输入串的最右推导,分别说明它们是否为G5.12 [S]的句子; (5)从(3)和(4)说明算符优先分析的优缺点。

5.5 对于文法G5.13[P] P → LAd | cd L → c A→ aP | P | a

请证明它不存在优先函数。 5.6 给定文法G5.14 [S] S →AS | b A → SA | a

(1)构造它的LR(0)的项集;

(2)构造识别该文法所有活前缀的DFA;

(3)这个文法是SLR(1)吗?若是,构造出它的SLR(1)分析表。

5.7 给定文法G5.15[S] S →AS | ? A → aA | b

(1)构造它的LR(1)文法;

(2)构造识别该文法所有活前缀的DFA; (3)构造出它的SR(1)分析表; (4)给出字符串abab$的分析过程。 5.8 若有定义二进制数的文法G5.16[D] D → L . L | L L → LB | B B → 0 | 1

(1) 通过构造该文法的无冲突的分析表来说明它是哪类LR文法; (2) 给出输入串101.010的分析过程。 5.9 给定文法G5.17[S]

《编译原理与技术》练习题 11

S → L = R| R L → *R | id R → L

(1)构造它的LR(0)的项集; (2)构造它的LR(0)项集规范族; (3)构造识别该文法所有活前缀的DFA;

(4)该文法是SLR(1)、LR(1)以及LALAR(1)?构造相应的分析表。 5.10 对于文法G5.18[S] S → A A → Ab | bBa B → aAc | aAb | a

(1)证明它是SLR(1)文法,但不是LR(0)文法; (2)证明所有SLR(1)文法都是LR(1)文法。 5.11 证明文法G5.19[M] M → N

N → Qa | bQc | dc | bda Q → D

是LALR(1)文法,但不是SLR(1)文法。 5.12 证明文法G5.20[S] S → aAa | aBb | bAb | bBa A → c B → c

是LR(1)文法,但不是LALR(1)文法。 5.13 对于文法G5.21[S] S → AaAb | BbBa A → ? B → ?

(1)证明它是LL(1)文法,但不是SLR(1)文法; (2)证明所有LL(1)文法都是LR(1)文法。

5.14 对于下列各个文法,判断它是哪类最简单的LR文法,并构造相应的分析表。

《编译原理与技术》练习题 12

(1) (2)

A → AA + | AA* | a S → AB

A → aBa | ? B → bAb | ? (3)

S → D; B | B

D → d | ? B → B; a | a| ? (4)

S → D; B | B

D → d | ? B → B; a | a| ? (5)

S → (SR | a

R → . SR | ) (6)

S → UTa | Tb

T → S | Sc | d U → US | e

5.15 命题演算的文法G5.22[B]

B → B and B | B or B | not B | (B) | true | false | b 是二义性文法。

(1)为句子b and b or true构造两个不同的最右推导,以此说明该文法是二义的。 (2)为它写一个等价的非二义性文法。

(3)给出无二义性规则,构造出LR(0)分析表,并给出句子b and b or true的分析过程。