一:由文法G1构造LR(1)部分分析表:
1.列出4个项目集I0,I1,I2,I3;(如下图)
2.填写LR(1)分析表的状态0,1,2的action和goto表的内容.(如下图)
G1: (0) S→T
(1) T→T(T)
(2) T→ε
┌──────┐ ┌──┐ ┌──┐ ┌──┐
│I0:S→·T,#│T│I1:│(│I2:│T│I3:│
││-→││-→││-→││
└──────┘ └──┘ └──┘ └──┘
┌──┬────────┬───┐
│ │ action │goto│
│状态├──┬──┬──┼───┤
│ │( │)│# │ T│
├──┼──┼──┼──┼───┤
│0 │ │ │ │ │
├──┼──┼──┼──┼───┤
│1 │ │ │ │ │
├──┼──┼──┼──┼───┤
│2 │ │ │ │ │
├──┼──┴──┴──┼───┤
│ │ │ │
│...│ ... │... │
│ │ │ │
└──┴────────┴───┘
二:已知文法G2,请用类pascal语言写出它的递归下降分析程序.
G2: A→[B
B→X]|BA
X→Xa|Xb|a|b
三:已知文法G3,要求:
1.写出各非终极符的首终极符集合和尾终极符集合;
2.填写opt表:
│ +│ *│ @│↑│ i│ #│
──┼──┼──┼──┼──┼──┼──┤
+│ │ │ │ │ │ │
──┼──┼──┼──┼──┼──┼──┤
*│ │ │ │ │ │ │
──┼──┼──┼──┼──┼──┼──┤
@│ │ │ │ │ │ │
──┼──┼──┼──┼──┼──┼──┤
↑│ │ │ │ │ │ │
──┼──┼──┼──┼──┼──┼──┤
i│ │ │ │ │ │ │
──┼──┼──┼──┼──┼──┼──┤
#│ │ │ │ │ │ │
──┼──┼──┼──┼──┼──┼──┤
│ │ │ │ │ │ │
G3:E→E+T|T|@T
T→T*F|F
F→p↑F|P
p→i
四:请写出产生下列语言的文法.
1. L1={a^ib^j|i>j>=1}
2. L2={ω1|ω1∈{0,1}*&ω1中包含0,1个数相等的任意串}
3. L3={ω2|ω2∈{a,b}*&ω2中a之后必定跟b}
4. L4={ω3+ω3|ω3∈{0,1}*}
五:简要回答问题.
1.对编译程序而言,模块,遍,子程序这三个概念的主要区别?
2.静态存储分配与动态存储分配的主要区别?
3.何谓自适应线性表?
六:翻译如下布尔表达式成四元式序列,结果留待填的真假链的四元式序号.
A∧B-C