text
前情提要:
本人0基础,学了12天左右,前几天过ppt,后几天刷了刷题,最终考了93。并不算高,但也想学弟学妹们学的轻松些,于是有了本教程。
不难看出作者本人也是速成的,因此本教程仅以题目为导向,不深究背后原理。水平有限,如有问题请及时指出,谢谢!
如果速成,不要死抠这门课的细节,这会浪费很多时间。题目来源:2025年12月8日期末考试真题
第一题:概念
2025年真题:
- 中间代码的生成对编译器有什么优点,举例说明
- 局部优化和全局优化的区别
- 编译器前端如何协作完成源代码到中间代码的翻译
除此之外,你还需要了解:
- 编译器和解释器的区别
- 编译的步骤流程及每一步的任务与作用(比如语法分析的作用)
- 根据要求写出对应正则表达式
- 递归下降分析法、自顶向下、自底向上、推导、规约的含义
- 抽象语法树的设计以及结构里的成员
- 中间代码优化的方法
- 活动记录相关内容(定义、内容、静态链动态链)
- 符号表的作用和数据结构
- ……
学习方法: 将ppt笼统的看一遍,梳理出大致的框架,每个框架主要的定义看一下,感觉不会考的特别细节的东西。
第二题:
2025年真题:
S -> SaA | SbA | A
A -> AdB | AeB | B
B -> m | (S)
对 AbBd(m) 写出其短语,直接短语,句柄
知识点:
在树中,(下列非严格定义)
句柄: 最左直接短语
短语: 某非终结符(中间节点)的所有叶子节点
直接短语: 仅一层深的短语
素短语: 至少含有一个终结符,且不包含其他素短语
此题画出树,对树进行分析即可
相似例题:
第三题:
2025年真题:
对字符集在 上且不以 开头并且以 结尾的字符串正则表达式和最简DFA
解题步骤:
- 改写成正则表达式
- 改写为NFA
- 改写为DFA
- DFA化简
直接看下面这个视频,看完会了多加练习即可
再来几题练练手~
::bilibili{#BV1fi4y1Q7Yz}
第四题:
其是否具有二义性?若有举例说明,并把它改为不含左递归的非二义性文法。
第五题:
写出 和 集,并写出该文法预测分析表。
第六题:
- 写出其拓广文法并标号
- 画出 项目集识别活前缀的 DFA
- 画出分析表