编译原理 期末复习

第一章 概述

1 一个典型的编译系统通常由哪些部分组成

在这里插入图片描述

2 编译程序前端包括……阶段?每部分的功能?

词法分析 :从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫码和分解,从而识别出一个个单词
语法分析 :在词法分析基础上,将单词符号串转化为语法单位(语法范畴) (短语 子句 句子 程序段 程序),并确定整个输入串是否构成语法上正确的程序
语义分析 :对语法分析识别出各类语法范畴,分析其含义,并进行初步翻译(产生中间代码)
中间代码生成:编译程序将源程序变成一个内部表示形式
代码优化 :对于代码(主要是中间代码)进行加工变换,以期能够产生更为高效(省时间和空间)的目标代码
目标代码生成: 将中间代码变换成特定机器上的低级语言代码
在这里插入图片描述

第二章

1 基本概念

语言
语法:对语言结构的定义(是一组规则,定义符号如何排列,排列与符 号含义无关)
语义:描述语言的含义(研究语法的含义)
在这里插入图片描述

句型
句子

在这里插入图片描述

文法的组成 文法G定义为四元组(VN,VT,P,S)
在这里插入图片描述

文法的类型
在这里插入图片描述
文法:语言的形式化描述方法,是阐述语法的一个工具
在这里插入图片描述

在这里插入图片描述

直接推导
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

多步推导
最左推导
最右推导(规范推导)
在这里插入图片描述
语法树
子树:任一结点及其全部后继
直接子树(树高为1):一子树根只有直接后继
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2 文法的二义性

L(G)的某个子句不只一个最左/最右推导
如果一个文法存在某个句子对应两棵不同的语法树,则说这个文法是二义的
若一个文法中存在某个句子,它有两个不同的最左(最右)推导,则这个文法是二义的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第三章 词法分析

词法分析的任务:识别单词
(输出形式) 词法分析器的输出结果:单词种别和属性二元组

第四章 自顶向下语法分析法 推导

语法分析的任务:识别句子 根据产生式识别输入串是否为一个句子
自顶向下语法分析受上下文无关文法影响

自上而下语法分析器,从文法的开始符号出发,反复使用文法的产生式,建立与输入符号串匹配最左推导

1 文法的改写 LL(1)文法

左递归的消除 转换为右递归(消除循环)

在这里插入图片描述
#1 消除直接左递归

在这里插入图片描述
#2 消除间接做左递归(代入法)
在这里插入图片描述
在这里插入图片描述

提取公共左因子
消去回溯
在这里插入图片描述

2 LL(1)文法的判定

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3 FIRST集合 FOLLOW集合

在这里插入图片描述
在这里插入图片描述

4 LL(1)预测分析表的构造

在这里插入图片描述

5 对输入串的分析过程

例题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第五章 自底向上优先分析 归约

从输入串开始,逐步进行“归约”,直至归约到文法的开始符号

1 边移进边归约(可归约串)

各种不同的自下而上分析法的一个共同特点是“边输入单词符号(移进符号栈),边规约”

2 规范归约

短语:每颗子树的叶子
直接短语:每颗直接子树的叶子
句柄:某句型的最左直接短语(即规范分析中最先被归约的子串)
规范(最右)推导
规范归约(最左归约)
最右推导的逆过程
在这里插入图片描述

在这里插入图片描述
素短语:至少包含一个终结符且不包含更小素短语的短句
最左素短语

3 算法优先分析法:终结符号对的关系 大题

FIRSTVT LASTVT集合的构造
在这里插入图片描述

构造算法优先关系表
判断算法优先文法
在这里插入图片描述
在这里插入图片描述

第八章静态语义分析和中间代码生成

1 中间代码形式

逆波兰式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三元式
在这里插入图片描述
在这里插入图片描述

四元式(三地址代码)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2 简单赋值语句的翻译

理解语法制导翻译的方法

3 布尔表达式到四元式的翻译(求值/作为优化措施) 大题

在这里插入图片描述
1️⃣求值 E1 rop E2 4条语句
2️⃣采用优化措施
困难:转移的目标在对它的应用之后才出现
解决方法:拉链-返填法

猜你喜欢

转载自blog.csdn.net/hezuijiudexiaobai/article/details/108247276