- 10
- 0
- 约8.45千字
- 约 10页
- 2020-10-06 发布于江西
- 举报
学习好资料 欢迎下载
四川大学 编译原理复习要点 2013版
一、编译器各个阶段的功能,输入、输出,前端、后端
1)词法分析:将字符序列收集到称作记号(t o k e n)的有意义单元中
扫描程序 输入:源代码 输出:记号
2) 语法分析:从扫描程序中获取记号形式的源代码,并完成定义程序结构的语法分
析,语法分析定义了程序的结构元素及其关系。
输入:记号 输出:语法树
3 )语义分析程序:分析程序的静态语义, 包括声明和类型检查。
输入:语法树 输出:注释树
4 )源代码优化程序:编译器通常包括许多代码改进或优化步骤。绝大多数最早的优化
步骤是在语义分析之后完成的,而此时代码改进可能只依赖于源代码。
【对源代码进行优化,并产生中间代码】
输入:注释树 输出:中间代码
5 )目标代码生成:得到中间代码,生成目标机器的代码
代码生成器 输入:中间代码 输出:目标代码
6 )目标代码优化程序:编译器改进由代码生成器生成的目标代码。
输入:目标代码 输出:目标代码
扫描程序、分析程序和语义分析程序是前端,代码生成器是后端,
前后端分开的好处:可以给编译器带来更方便的可移植性,此时的编译器既能改变源代
码,又能改变目标代码。
【遍】编译器发现,在生成代码之前多次处理整个源程序很方便,这些重复就是遍。首
遍是从源中构造一个语法树或中间代码,在它之后的遍是由处理中间表示、向它增加信息、
更换结构或生成不同的表示组成
二、解释器和编译器的区别 与联系?
读入源语言后,解释器和编译器都要进行词法分析、语法分析和语义分析,
之后,二者开始有所分别。解释器在语义分析后选择了直接执行语句;编译器在
语义分析后选择将将语义存储成某一种中间语言,之后通过不同的后端翻译成不
同的机器语言(可执行程序)
编译器是把源语言(如 C,Pascal,java 等高级语言)转换为目标语言(汇编语言、机
器语言等低级语言),要产生目标代码。
解释器是以一个源语言(C,Pascal,java 等高级语言)为输入,一边解释一边执行源
程序,但不产生目标代码。
学习好资料 欢迎下载
三、算法描述(伪代码)p41
构造一个扫描程序的自动过程:正则表达式→NFA→DFA→程序
1、正则表达式→NFA
(1)建立字母表。输入的正则表达式由于一般不输入“与”操作符,因此
首先给表达式加 .作为与操作。再利用逆波兰式的堆栈操作,把操作符与字母分开,便得
到了字母表。
(2 ) Thompson 构造法。首先将构成正则表达式的各个元素分解,对于每
一个元素,按照下述规则1 和规则2 生成NFA。注意:如果r 中记号a 出现了多次,那么
对于a 的每次出现都需要生成一个单独的NFA。
2、NFA→DFA
从单个输入字符的某个状态中去除ε -转换和多重转换。
(1)利用ε -closure 规则即闭包规则,把NFA 状态划分成集合,而后把每个集合作为
DFA 的状态。
详细描述:从NFA 的状态S 开始经过ε 到达的状态存储下,然后再把存储结果中的状
态有经过ε 到达的新状态也存储在一起,这样通过闭包规则就可以这些集合,再把集合作为
DFA 的状态。
(2 )子集构造
3、DFA→程序 DFA状态最小化
取出DFA 状态中的不可达的状态。
构造最小状态的等价DFA 的算法是通过创建统一到单个状态的状态集来进行。
构造NFA (使用Thompson结构):
1) 基本正则表达式 基本正则表达式格式a或ε,其中a表示字母表中单个字符的匹配,
ε表示空串的匹配。与正则表达式a等同的N FA (即在其语言中准确接受)的是:
与ε等同的N FA是:
2) 并置 我们希望构造一个与正则表达式r s等同的N FA ,其中r 和s 都是正则表达
式。可将与rs 对应的N FA构造如下:
3) 在各选项中选择 我们希望在与前面相同的假设下构造一个与r | s
您可能关注的文档
最近下载
- 人教版八年级地理下册第六章第二节《“白山黑水”——东北三省》课件.pptx VIP
- 人教版初中地理八年级下册第六章第二节白山黑水东北三省第1课时课件.pptx VIP
- 哈尔的移动城堡(世界的约定).docx VIP
- 2026年江苏师范单招试题必考题.docx VIP
- 7.2.2 从“北大荒”到“北大仓” 自然资源与工业发展 课件 2025-2026学年度人教版地理八年级下册.pptx
- 人教版八年级下册地理上课课件第二节 第2课时 从北大荒到北大仓自然资源与工业发展.pptx VIP
- 福建农林大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- 杯具消毒操作规范.doc VIP
- 福建农林大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 组织生活会程序培训课件.ppt VIP
原创力文档

文档评论(0)