admin 管理员组文章数量: 1087139
2025年1月2日发(作者:scalancex208)
1. 源语言:书写源程序所使用的语言
2. 源程序:用程序设计语言书写的程序
3. 目标语言:计算机的机器指令。目标语言可以是机器语言,也可以是汇编语
言,或者是其他中间语言,但最终结果必是机器语言。
4. 目标程序:由机器指令构成的程序。目标程序是经过翻译程序加工后用目标
语言表示的程序。
5. 翻译程序:能够把某一种语言程序(源程序)改造成另一种语言程序(目标
程序)将源程序译成逻辑上等价的目标程序的程序。翻译程序有两种工作方
式:编译和解释。
6. 编译程序:也称翻译程序
7. 解释程序:有些翻译程序在翻译过程中并不产生完整的目标程序,而是翻译
一句,解释执行一句,这样的称为解释程序。
8. 汇编程序:由汇编语言写成的程序
9. 词法分析:执行词法分析的程序成为词法分析器,词法分析依据的是语言构
词规则。词法分析器从文件读入源程序,由字符拼接单词。每当识别出一个
单词,词法分析器就输出这个单词的内部码。
10. 语法分析:执行语法分析的程序叫做语法分析器。语法分析的任务就是根据
语言的规则,将词法分析器所提供的单词种别分成各类语法范畴。
11. 中间代码生成:中间代码产生有时称为语义分析,执行中间代码产生的程序
称为中间代码生成器。他的任务时按照语法分析器所识别出的语法范畴产生
相应的中间代码,并建立符号表、常数表,等各种表格。
12. 目标代码生成:执行目标代码生成的程序称为目标代码生成器。他的任务是
根据中间代码和表格信息,确定各类数据在内存中的位置,选择合适的指令
代码,将中间代码翻译成汇编语言或机器指令,这部分工作与计算机硬件有
关。
13. 符号表:用于记录源程序中出现的标识符,一个标识符往往具有一系列的语
义值,她包括标识符的名称、种属、类型、值存放的地址等等。
14. 常数表:用于记录在源程序中出现的常数。
15. 编译程序前端:是由词法分析器、语法分析器和中间代码产生器组成的。她
的特点是依赖于被编译的源程序,输出结果用中间代码描述,和目标机器无
关。
16. 编译程序后端:是由目标代码生成器组成,他的特点是和源程序无关,以中
间代码形式的源程序为输入进行处理,输出结果依赖于目标机器。
17. 文本文件:文本文件的内容由 94 个图形字符‘!‘-’~‘(33-126)和 4 个
控制字符换行(10)、回车(13)、空格(32)、TAB(9)构成,文本文件又
称为 ASCII 码文件,扩展名通常为 TXT,文件尾用控制字符 EOF(26)指示。
18. 二进制文件:由机器指令即二进制数构成,因二进制数可能是 26(文件结束
控制符),故文件尾用文件长度(文件的字节数)指示,扩展名通常为EX
E。
19. 源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler)
→ 汇编程序 (assembler) → 目标代码 (object code) → 链接器 (Linker)
→ 可执行程序 (executables)
20. 编译程序的流程是:
源程序-》词法分析-》语法分析-》语义分析(中间代码产生)-》目标
代码生成-》目标程序
21. 二元式编码表:
单词 二元式
begin (’{’,”NUL”)
end (’}’,”NUL”)
real (‘c’,”NUL”)
integer (‘a’,”NUL”)
(‘i’,”abc”)
标识符
(‘x’,”223”)
无符号整数
(‘y’,”1.23”)
无符号实数
22. 词法分析的各种正规式所代表的含义
(1)a(a|b)
描述标识符的正规式
(2)bb
描述无符号整数的正规式
* * * * *
(3)bb .b .bb bb .b (E|e)(+|-|ε)bb 描述的是无符号实数的正规式
*
(4)(0|1)(0|1)
描述二进制数的正规式
23. 左递归的消除
文法:PPα|β 消除左递归的公式是 PβP’ P’αP’|ε
24. 提取左因子
文法:Pδβ1|δβ2|δβ3|…|δβn 提取左因子的公式是
PP’ P’β1|β2|β3|…|βn
25. First 集和 Follow 集规律【E】
First 集:(1)aB 为ε,则 E 终结符的这种,则 b 在 Fisrt(E)中(2)a 在
First(E)中,此时的 a 可以是+,-,*,/,.等(3)a 为ε,则 First(B)/
ε添加到 First(E)中
Follow 集:(1)文法的开始符号,那么#在 Follow(E)中(2)看紧跟在所
要求的那个非终结符后面的元素,将 first(b)/ε添加到 Follow(B)(3)
若 b 为ε,或者文法式为 E,则 Follow(E)添加到 Follow(B)中
26. LL(1)分析表的构造
将非终结符的 first 集中的符号列下填上相对应的文法规则
若将非终结符的 first 集中含有ε,则在 Follow 集中的符号列下填上推出
ε的文法规则
27. LR(0)分析表的构造
(1)A rk(K 为文法规则的编号)
(2)A 数字 m(m为Ij的j)
(3)S Acc
(4)A sj(j 为 Ij 的 j)
28. SLR 分析表的构造
删除非终结符的 Follow 集中的不存在的那些列中的值
*
*
*
28.
文法分析过程
29. LR 语法分析器的控制程序
例如:a*b+c
经 词 法 分 析 , 单 词 的 二 元 式 为
(‘i’,”a”),(‘*’,”NUL”),(‘i’,”b”),(‘+’,”NUL”),(‘i
’,”c”),(‘#’,”NUL”)
因此单词的种别序列为 i*i+i#
step 状态栈 符号栈 输入串 动作
0) 0 # i*i+i# 初始
1) 05
2) 03
3) 02
4) 027
5) 0275
6) 02710
7) 02
8)
01
9)
016
10) 0165
11) 0163
12) 0169
13) 01
14)
注:【1】i
【2】F
【3】i
【4】T*F
【5】T
【6】i
【7】F
【8】E+T
#i
#F
#T
#T*
#T*i
#T*F
#T
#E
#E+
#E+i
#E+F
#E+T
#E
Acc
*i+i#
*i+i#
*i+i#
i+i#
+i#
+i#
+i#
+i#
i#
#
#
#
#
移进
归约【1】
归约【2】
移进
移进
归约【3】
归约【4】
归约【5】
移进
移进
归约【6】
归约【7】
归约【8】
接受
30.
aVbVc
语法制导翻译过程如下所示
step symbol wval .addr .tc .fc 输入串
0
1
2
3
#
#i
#X
#E
-
-a
--
--
-
--
-&a
--
-
--
--
-1
-
--
--
-2
(i,”a”)
(V,”NUL”)
(V,”NUL”)
(V,”NUL”) (1)(jnz,&a,0,0)
(2)(jmp,0,0,3)
nxq=3
4
5
#EV
#E
o
---
--
---
--
-1- -2- (i,”b”)
-1 -- (i,”b”)
nxq=1
6
7
8
#Ei
o
--b ---
--- ---
--- ---
-1- -- (V,”NUL”)
#EX
o
-1- --- (V,”NUL”)
-13 --4 (V,”NUL”) (3)(jnz,&b,0,1)
(4)(jmp,0,0,5)
nxq=5
#EE
o
9
10
11
12
13
14
#E
#EV
#E
o
-- -- -3 -4 (V,”NUL”)
--- ---
-- --
-3- -4- (i,”c”)
-3 -- (i,”c”)
#Ei
o
--c --- -3- --- (#,”NUL”)
#EX
o
--- --&c -3- --- (#,“”NUL)
--- --- -35 --6 (#,”NUL”) (5)(jnz,&c,0,3)
(6)(jmp,0,0,0)
nxq=7
#EE
o
15 #E
Acc
-- -- -5 -6 (#,”NUL”)
=5 =6
31.设源程序为 aΛbΛc,经词法分析,他的二元式序列为(:i,”a”)
(Λ,”NUL”)(i,”b”) (Λ,”NUL”)(i,”c”)(#,”NUL”)
step symbol wval .addr .tc .fc 输入串
0
1
2
3
#
#i
#X
#E
-
-a
--
--
-
--
-&a
--
- - (i,”a”)
nxq=1
-- -- (Λ,”NUL”)
-- -- (Λ,”NUL”)
-1 -2 (Λ,”NUL”) (1)(jnz,&a,0,3)
(2)(jmp,0,0,0)
nxq=3
4
5
6
7
8
#EΛ
#E
A
--- ---
-- --
-1- -2- (i,”b”)
-- -2 (i,”b”)
--- -2- (Λ,”NUL”) #Ei
A
--b ---
#EX
A
--- --&b --- -2- (Λ,”NUL”)
--- --- --3 -24 (Λ,”NUL”) (3)(jnz,&b,0,5)
(4)(jmp,0,0,2)
nxq=5
#EE
A
9
10
11
12
13
14
#E
#EV
#E
A
-- -- -3 -4 (Λ,”NUL”)
-3- -4- (i,”c”)
-- -4 (i,”c”)
--- -4- (#,”NUL”)
--- ---
-- --
#Ei
A
--c ---
#EX
A
--- --&c --- -4- (#,“”NUL)
--- --- --5 -46 (#,”NUL”) (5)(jnz,&c,0,3)
(6)(jmp,0,0,0)
nxq=7
#EE
A
15 #E
Acc
-- -- -5 -6 (#,”NUL”)
=5 =6
版权声明:本文标题:(完整版)编译原理名词解释 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1735864558a1698113.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论