提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
针对《编译考研辅导教程》习题做出的习题归纳。作为个人习题记录方便复习,同时也希望对你有所帮助,内容较为草率,如有谬误敬请谅解。
第一章
记住五个阶段以及各个阶段大概的作用。
第二章
算符优先性的判断:画树,下面的优先级高。
第三章
十六进制也包含正负
删除空格是错的,应该是将多个空格替换成一个而不是删除
注意描述的格式
别的问题:
什么是正规式?什么又是正规集?
什么是DFA?什么又是NFA?
过程:根据正规式的分裂法则进行分裂->写表,注意空字串会传递->写状态转换矩阵->去掉不可区分的(可以根据矩阵看出来)->画图
分清正规式和正规文法
利用分裂法画出正规式的NFA->由NFA写出状态转换矩阵->删掉不可区分的->画图
第四章
求first集和follow集之前先消除左递归
follow集的求法一定要注意。
注意间接左递归的判定即可。
左递归和公共左因子的后果
通过这个题学会预测分析法。
此外,在求first/follow集时,推荐下面的格式:
预测分析表求法:算first和follow集,填坐标,横轴上没有空串
第五章
素短语:1.是短语。 2.至少有一个终结符。 3.不含更短的素短语。
LL(1)文法需消除左递归后再进行下一步判断。
句柄:最左边直接子树从左往右的叶子排列。
直接子树:高度为一,只有直接后继。
直接短语:直接子树的叶子(一次性能推出)。
写项目集族->由项目集族写分析表(LR(0))->根据相应的方法写SLR(1)的分析表(要求Follow集)->根据条件判断LR(0)和SLR(1)
根据这一道题搞懂LR(0)、SLR(1)
1.Follow集和First集的求法,关键是掌握它们俩的含义就好理解了
2.关于分析表:
LR(0):归约的写一行
SLR(1):归约的只在Follow集对应列里面写
LR(1):写项目集时要写向前搜索符,向前搜索符不同便属于不同的项目,向前搜索符只看·后面的,向前搜索符是沿箭头继承而非沿序号继承,不用合并同心集,判断分析表是否有多重入口,若有便不是LR(1)。
LALR(1):合并同心集,项目框便只用写一个 ,若合并之后的分析表里有多重入口,便不是LALR(1)。(合并同心集之后还有归约归约冲突,便只是LR(1)文法)。
第六章
注意四元式的最后一个
问题:
循环的没动手做过
问题:
文法的判断方法
素短语、句柄的判断
算符优先文法的判断
LL(1)和SLR(1)的判断方法背不下来。
LL:first集之间无交集,推出空,则first=follow
SLR:follow与归约的终结符无交集
第七章
三种策略需作区分
A静
B堆式动态
C栈式动态
总结
12.17作于复习电科2022级编译原理考试用,内容偏个人向。