文章目录
废话
还是非常的功利啊,不考的不复习,考试嘛,赚绩点嘛,不寒碜。
大题就那么几类,看熟了应该问题就不大,没啥变化。看多了说不定直接遇到原题了。
知识点总结
第一章 编译概述
编译的步骤:
- 分析: 词法分析、语法分析、语义分析
- 综合: 中间代码生成、代码优化、目标代码生成
编译的前端:只和中间代码有关的部分;编译的后端:只和目标代码有关的部分。
多遍编译: 优点:减小了对主存容量的需求;结构清晰,功能独立。缺点:增加了许多重复性工作。
第二章 形式语言与自动机基础
就是那些东西,没啥要复习的。
第三章 词法分析
好像也没什么考点。
第四章 语法分析
自顶向下分析: 从树根到树叶建立分析树。
递归调用预测分析: 包含下面几步。
- 消除左递归;
- 求出FIRST集合;
- 对每个非终结符画出其状态转换图,得到若干张图;
- 从起始符号的状态转换图的起点走到终点即分析完毕。
非递归预测分析: 模型如下图所示。

包含下面几步:
- 消除左递归!(别忘了!)
- 求出 FIRST 集合。
- 求出 FOLLOW 集合。
- 根据 FIRST 和 FOLLOW 求出预测分析表:对于非终结符 A A A ,生成式 A → α A\to \alpha A→α,输入字符 b b b,若 b ∈ FIRST ( α ) b\in \text{FIRST}(\alpha) b∈FIRST(α),则 M [ A , b ] = A → α M[A, b]=A\to \alpha M[A,b]=A→α;否则若 b ∈ FOLLOW ( A ) b \in \text{FOLLOW}(A) b∈FOLLOW(A),则 M [ A , b ] = A → ϵ M[A, b] = A \to \epsilon M[A,b]=A→ϵ。
- 根据预测分析表进行分析。分析步骤: 若 X=a=‘$’,则匹配成功,结束;若 X=a,则匹配成功,弹栈;若 X!=a,且 X 为终结符,则报错;若 X!=a,且 X 为非终结符,则查表弹压栈。
若不含多重表项(或有多重表项但是考察 FIRST 和 FOLLOW 集合后无冲突),则为 LL(1) 文法。
复习一下预测分析表的样子(列首只有终结符,行首只有非终结符):

自底向上分析: 从树叶到树根建立分析树。又称“移进-归约”分析方法。由于是最右推导的逆过程,所以又称作最左规约。
LR分析方法: 模型如下图所示。

活前缀: 不含句柄后任何符号的前缀。上面 X 1 X 2 . . . X m \text X_1 \text X_2...\text X_m X1X

最低0.47元/天 解锁文章
1020

被折叠的 条评论
为什么被折叠?



