自己淋过雨不希望别人也和我一样痛苦。
如果以不挂科为目的 推荐重点复习前八章,其他的随便看看(和我一样)。
仔细学习考前的 PPT,我太弱还是没掌握,很亏。
考察重点:
每一章都有答题基本上,但词法分析只有 5 分。
其他基本都在 10 - 15 分。
选择题考察
PDA 的状态转移
编译器前后端中间组件
什么不属于中间语言(选项里有一个 sw 命令,其他是三元、四元)
待补充
大题
- NFA 转 最小 DFA 再转 RE
- 读词法分析联合 DFA,根据输入串写出输出,并判断优先级。
- 文法修建,基础题,以及求 first follow 集 判断 LL1 文法。
- 已知句子 +2++3*(+4) 和对应的语法树,树自己画吧 反正总结的文法是 E → E*E | E+E | +i | (E) 对这个句子进行规范规约;写出语法树的产物 直接短语 句柄;判断是否为歧义的 为什么
- 写出 itemDFA 并判断是否存在冲突,如果存在,任意消除其中一个。文法为:S` → E E → E+E | +E | +i
int a[2, 3];
void f(int b(), int k){
if(k > 0 && k < 3) a[k-1,k] = b(k, 1)
else print 0;
}
1、对 f 函数声明进行语义分析(自然语言或者符号表均可)
2、对【if(k > 0 && k < 3) a[k-1,k] = b(k, 1)
else print 0;】进行分析。写出三地址/四元式。
int foo(int y;){
int z;
void bar(int x; int soo())
{ if(x > 3) bar(x/3, soo());
else z = soo(x);
print z;
}
int row(int x)
{
y = x + 5;
return y;
}
bar(y, raw());
}
foo(6)
写出执行到 return y;
时候的栈快照。