早上11:00考完的考试,凭着回忆把题目重现出来了。
复习的时候刷了一些往年的卷子,感觉用处不是很大。
希望结果不负努力吧。
教材用的这个
1.词法分析(20分)(1)NFA->DFA (2)DFA最小化 看了很久,但是不知道为什么第一问子集构造法解出的DFA就已经是最小的了,所以第二问就用Hopcroft算法稍微说明了一下,没法继续划分
2.语法分析(20分)(1)根据文法写分析表 (2)一个字符串,可不可以被这个文法接受 LL文法,比较简单,没有“空”,直接写即可。 可否被接受可以直接看出来,不可以。然后用栈去按照分析表模拟这个过程,得出不能。
【注意】这个比较要注意一下“倒序入栈”的问题。
我用书上(PPT上)的这个例子做一个简单说明,大概是这样子。如果最后输入串能被全部消掉,并且能归约回开始符S,就表示是可接受的。
3.语法制导和翻译(10分)考虑4进制体系中数字集合为: =0,1,2请构建一个组产生式并设计语义动作,使其具备将三进制 数翻译成十进制的能力。 使用综合属性就可以构造出来。
4.寄存器分配(30分)一个比较简单的图,先做活性分析,再分配寄存器,要求画出那个无向图。
大概长这样子,不需要回溯,一遍从底向上分析就可以了。
分析方式老师课堂上都讲过:
5.优化相关(20分)T1=j-2 T2=4*T1 temp = A[T2] T3=j+2 T4=T3-2 T5=8*T4 T6=A[T5 ] …… T11=
印象中提取了几次公共子表达式之后,就比较简洁了, 主要就用到了常量传播和公共子表达式,强度削弱好像没用到, 我试图用