编译原理(第3版)——引论


考试重点:语法树、中间代码(四元)、前/后端、遍


知识点梳理与总结

  1. 编译
    ① 翻译程序:将源语言程序等价(不改变语义)转换为目标语言程序。会产生目标代码;高级语言 <=> 低级语言(机器语言|汇编语言))
    ② 解释程序:边解释边执行程序本身。***(不会产生目标代码)***

解释程序与编译程序的区别在与(是否生成中间代码
用高级语言编写的源程序都必须通过编译,产生目标程序后才能运行 (×
编译程序分成翻译程序和解释程序,解释程序不需要产生目标代码

编译原理(第3版)——引论
编译原理(第3版)——引论
编译原理(第3版)——引论
编译原理(第3版)——引论
2. 编译过程和编译过程的结构
① 编译过程(简述):
源程序->词法分析->语法分析->语义分析->中间代码生成->代码优化->目标代码生成->目标程序
编译原理(第3版)——引论
编译原理(第3版)——引论
编译原理(第3版)——引论
编译原理(第3版)——引论
编译原理(第3版)——引论

词法分析:——字符流 ||【——>(类号,内码)】

(1)预处理后识别有词法意义的单词;
(2)单词:有意义的最小语法单位;
(3)原则:构词规则;
(4)描述工具:有限自动机 || 正规式;
(5)标识符:(用户自己定义的)由字母字符开头,后跟字母、数字字符的一种单词。

编译原理(第3版)——引论语法分析:——构造语法树

(1)任务:分析单词串是如何构成语句和说明;
(2)原则:语法规则;

编译原理(第3版)——引论
编译原理(第3版)——引论
编译原理(第3版)——引论
编译原理(第3版)——引论
编译原理(第3版)——引论
语义分析:——边判断边处理

中间代码生成:——四元式(运算符,运算对象1,运算对象2,结果)

目标代码生成:——在特定机器上;与硬件系统结构和指令含义有关

②编译程序的结构

表格管理和出错处理与上面6个模块都有联系
编译原理(第3版)——引论
编译原理(第3版)——引论
编译原理(第3版)——引论

③编译阶段的组合

前端:词法分析、语法分析、语义分析、中间代码生成
后端:目标代码生成以及相关出错处理和符号表操作

遍:对源程序或等价的中间语言程序从头到尾扫描并完成规定任务的过程。
编译原理(第3版)——引论
编译原理(第3版)——引论