没有合适的资源?快使用搜索试试~ 我知道了~
编译原理重点知识总结.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 19 浏览量
2022-07-09
18:10:42
上传
评论
收藏 34KB DOCX 举报
温馨提示
试读
20页
编译原理重点知识总结.docx
资源推荐
资源详情
资源评论
《编译原理》知识点总结
目录
第一章 引论
第二章 高级语言及其语法描述
第三章 语法分析——自上而下分析
第四章 属性文法和语法制导翻译第
五章 语义分析和中间代码产生第六
章 优化
第一章 引论
一.编译程序(compiler):
把某一种高级语言程序等价地转换成另一种低级语言程序(如汇编语言或机
器语言程序)的程序
二.编译程序的工作的五个阶段:
词法分析、语法分析、中间代码产生、优化、目标代码产生
1. 词法分析
任务: 输入源程序,对构成源程序的字符串进行扫描和分解,识别出
一个个单词符号。
依循的原则:构词规则
描述工具:有限自动机
FOR I := 1 TO 100 DO
保留字 标识符 等符 整常数 保留字 整常数 保留字
2. 语法分析
任务:在词法分析的基础上,根据语言的语法规则把单词符号串分解
成各类语法单位。
依循的原则:语法规则
述工具:上下文无关文法
3. 语义分析与中间代码产生
任务:对各类不同语法范畴按语言的语义进行初步翻译。(变量是否定
义、类型是否正确等)
依循的原则:语义规则
中间代码:三元式,四元式,逆波兰记号,树形结构等。是一种独立
于具体硬件的记号系统。
例:将 Z:=X + 0.618 * Y 翻译成四元式为
(1)
*
0.618
Y
T1
(2)
+
X
T1
T2
(3)
:=
T2
_
Z
4. 优化
任务:对于前阶段产生的中间代码进行加工变换,以期在最后阶段产
生更高效的目标代码。
依循的原则:程序的等价变换规则
FOR K:=1 TO 100 DO
BEGIN
M := I + 10 * K;
N := J + 10 * K;
END
4. 目标代码产生
任务: 把中间代码变换成特定机器上的目标代码。
依赖于硬件系统结构和机器指令的含义
目标代码三种形式:
a) 绝对指令代码: 可直接运行
b) 可重新定位指令代码: 需要连接装配
c) 汇编指令代码: 需要进行汇编
第二章 高级语言及其语法描述
2.1.1 语法
词法规则:单词符号的形成规则。
a) 单词符号是语言中具有独立意义的最基本结构。一般包括:常数、标
识符、基本字、算符、界符等。
b) 描述工具:正规式和有限自动机
语法规则:语法单位的形成规则。
a) 语法单位通常包括:表达式、语句、分程序、过程、函数、程序等;
c) 描述工具:上下文无关文法
2.1.2 语义
语义:一组规则,用它可以定义一个程序的意义。
描述方法:
a) 自然语言描述:隐藏错误、二义性和不完整性
b) 形式描述:
无二义性
完整性
多数语言中,算符的优先顺序如下:
乘幂(**或↑)
一元负(-)
乘、除
加、减
关系符(<,=,>,<=,>=,<>)
非(¬,not)
与(Λ,&,and )
或( ,|,or,)
隐含( 或 imp)
等值( 或 epui,或~ )
2.3 程序语言的语法描述
1. 几个概念:
a) 考虑一个有穷 字母表∑ 字符集
b) 其中每一个元素称为一个字符
c) ∑上的字(也叫字符串) 是指由∑中的字符所构成的一个有穷序
列
d) 不包含任何字符的序列称为空字,记为ε
e) 用∑
*
表示∑上的所有字的全体,包含空字ε
例如: 设 ∑={a, b},则 ∑
*
={ε,a,b,aa,ab,ba,bb,aaa,...}
f) ∑
*
的子集 U 和 V 的连接(积)定义为
UV={
�
b |
��
U & b
�
V }
例如: 设:
U=
{
a, aa
} ,
V=
{
b, bb
} 那么:
UV
= {
ab, abb,
aab, aabb
}
V )
*
N
g) V 自身的 n 次积记为 V
n
=VV…V
h) 规定 V
0
={�},令 V
*
=V
0
∪V
1
∪V
2
∪V
3
∪… 称 V
*
是 V 的闭包;
记 V
+
=VV
*
,称 V
+
是 V 的正规闭包。
例如: 设:
U=
{
a, aa
}
那么:
U
*
= {
�
,
a,
aa,
aaa,
aaaa,
…
}
U
+
= {
a,
aa,
aaa,
aaaa,
…
}
i) 0 型(短语文法,图灵机):
产生式形如: � � �
其中:�� (V � V )
*
且至少含有一个非终结符;�� (V �
T N T
任何 0 型语言都是递归可枚举的。
j) 1 型(上下文有关文法,线性界限自动机):
产生式形如: � � �
其中:|�| � |�|,仅 S�� 例外。
意味着对非终结符进行替换时务必考虑上下文,并且,一般不允
许替换成空串� 。
k) 2 型(上下文无关文法,非确定下推自动机):
产生式形如: A � �
其中:A� V
N
;�� (V
T
� V
N
)
*
。
非终结符的替换可以不必考虑上下文。
l) 3 型(正规文法,有限自动机):
产生式形如: A � �B 或 A � �
其中: �� V
T
*
;A,B�V
N
产生式形如: A � B� 或 A � �
其中: �� V
T
*
;A,B�V
N
剩余19页未读,继续阅读
资源评论
Cheng-Dashi
- 粉丝: 108
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功