一、大题:
1.正规式转换为NFA P57例4.7 连画图
2.判断LL(1)文法,构造LL(1)语法分析表P97例97 的第一题
3.SLR(1)文法的判定P137
4.代码的优化(参照书本)P249
5.目标代码生成(表达式—>中间代码—>目标代码)P277
P248第6题
复习题:
第一章
1.编译有哪6个阶段,哪个阶段是可检类型?
答:词法分析->语法分析->语义分析->中间代码生成->代码优化->目标代码生成
2.语义。
语法。
词法分析。
答:词法分析:从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词。
语法分析:在词法分析的基础上将单词序列分解成各类语法短语。
语义分析:审查源程序有无语义错误,为代码生成阶段收集类型信息。
3.语言处理工具P7(估计不会考)
第三章
1.判断文法类型P38
2.给出一个具体文法,确定语法类别P38
3.给出一个式子写出句子,句柄,直接短语P44
4.正规语言和正规文法的关系(判断)P53
5.规范推导定义?给出一个句子,给出其规范推导过程(应用)。
6.句子语法树是唯一的吗?给一句子画出语法树(应用)。
答:不是的,语法树看P41
7.正规文法是否可以用上下文无关文法描述?
正规文法是上下文无关文法的特例,可以用正规文法描述的语言,其正规文法描述的形式也是上下文无关文法的描述形式,即可以用上下文无关文法描述
8.语法树,句柄,NFA定义,O形文法?
9.状态转换族。
给一个文法画出。
10.短语树,短语规则的规约过程
第四章
1、词法分析器的输入输出是什么?
答:输入源程序,输出单词符号。
2、扫描器的作用P2
3、有穷自动机等价是什么P61
4、给出一个文法。
消除左递归(应用
5、求正规式的等价NFA
如S=((ba)*|a)*Cb
第五章
1、常用2种语法分析是什么:自顶向下、自底向上。
2、技术first,follow集合,判断分析L(1)
画出语法分析表
如:
S—>eB
B—>SDa|E
D—>eA|A
A—>b|E
(通过select判断)
第七章
1、区别LR(0),SLR(1)文法
2、LR(k),当k=0,1时分别表示什么意义
3、LR(0)项目有哪几种?
答:移进项目、待约项目、归约项目、接受项目
如:给出项目:E—>d
E—>@.a&分别是什么项目?
4、LR(k)文法是否都有二义性(判):lr(0)有二义性,lr(1)不一定5、给LR文法判断是否是SLR(1)文法?(大题)
如:
S—>S×id
S—>id
6、给出项目集;求closure(I
如:I={S—>a,A}
解:
A—>a
A—>bB
A—>Ba
B—>
和
A—>a
A—>bB
A—>Ba
第八章
1、布尔表达式逆波兰式表达式
如:¬(b∨c)∧(¬a∧c)
a+b/c =>abc/+ 前后缀表
2、BC翻译
3、语法制导翻
4、文法符号有哪2种属性?(综合、继承两种属性)(判
5、算术表达式的三元式,逆波兰
6、语句翻译
第十章
1、数组元素地址计算与存储方式是否有关:是有关的
2、常用2种动态存储分配:栈式动态存储分配、堆式动态存储分配
3、小程序:其传值与传地址分别是什么(应用)
第十一章
1、块有几个入口、出口语句:1个入口,1-n个出口
2、给出流程图优化其
代码外提(值不变)->强度削弱(乘变加,除变减)->删除归纳变量
第十二章
1、代码生成要考虑寄存器使用
2、表达式的四元式,最优代码。