成考专升本:编译原理复习串讲提要,快来复习吧!
1.编译过程一般分为词法分析、语法分析、中间代码生成、代码优化和目标代码生成五个阶段。
2.语法分析最常用的两类方法是自上而下和自下而上分析法。
3.确定的有穷自动机是一个五元组,通常表示为DFA=(K , ∑, M, S, Z)。
4.所谓最右推导是指任何一步都是对中最右非终结符进行替换。
5.语法分析器的任务是分析一个文法的句子结构。
6.如果一个文法的任何产生式的右部都不含有相邻的非终结符,则这种文法称为算符文法。
7.进行确定的自上而下语法分析要求语言的文法是无左递归和公共左因子的。
8.LR分析法是一种自下而上的语法分析方法。
9.根据优化对象所涉及的程序范围,代码优化分为局部优化、循环优化和局部优化等。
10.常用的优化技术包括:删除公共子表达式、代码外提、强度削弱、复写传播、合并已知量等。
11.在进行算符优先的语法制导翻译时,需增加语义栈。
12.有文法G[S]:S-aAb
A-BcA | B
B-idt |ε 该文法是2型文法。
13. 设有文法G[K]: K-K1|K0|Ka|Kc|a|b|c aaa该文法的句子。
14.高级语言常用的语法分析方法中,递归下降分析法属于自顶向下分析方法。
15.算符优先分析法每次都是对最左素短语进行归约。
16.a*(-b+c)逆波兰式ab@c+*
17.A+b*(c+d/e) 逆波兰式Abcde/+*+
18.(ab)∧(b<c) 逆波兰式Abbc<∧
19.If (x+y)*z=0 then (a+b)↑c then a↑b↑c逆波兰式Xy+z*ab+c↑abc↑↑¥(其中¥表示三目运算符if-then-else)
20.正规式方程组: S=0A+1B
A=1S+1
B=0S+0 求解该方程组得: S=(01|10)(01|10)*
21.因为E=E+T=E+T*F所以E+T*F是文法G[S]的句型。 短语:E+T*F, T*F 直接短语:T*F 句柄:T*F
22.因为FOLLOW(S)={)?#}∩{(}=Φ所以该文法为SLR(1)文法。其分析表如下:
|
状态 |
ACTION |
GOTO |
||
|
( |
) |
# |
E |
|
|
0 |
S2 |
r2 |
r2 |
1 |
|
1 |
acc |
|||
|
2 |
S2 |
r2 |
r2 |
3 |
|
3 |
S4 |
|||
|
4 |
r1 |
r1 |
||
23.目标代码为:
LD R0,B
SUB R0,C
LD R1,A
MUL R1,R0
LD R0,D
ADD R0,1
ST R1,M
LD R1,E
SUB R0,F
MUL R0,R1
LD R1,M
p R1,R0
ST R1,W


