编译程序概论
1294 字
6 分钟
编译程序概论
Warning
含AI生成内容
第一章 编译程序概论 · 知识点详解
🔴 核心(必背/必算) 🟡 理解(会说清) 🟢 了解(有印象) 本章性质:背概念保底,约 10 分,简答+选择为主。
一、翻译程序、编译程序、解释程序
🟡 翻译程序(Translator)
把一种语言程序(源语言程序)转换成另一种功能等价的语言程序(目标语言程序)的程序。它是一个总称,编译程序和解释程序都属于翻译程序。
🟡 编译程序(Compiler)
一种特殊的翻译程序,其源程序是高级语言,目标程序是低级语言(汇编语言或机器语言)。
- 特点:一次性把整个源程序翻译成目标程序,之后可反复执行目标程序。
- 优点:目标程序执行速度快。
- 例子:C、TC 等高级语言编译系统。
🟡 解释程序(Interpreter)
也是翻译程序,但与编译程序的根本区别在于:
- 逐句翻译、边翻译边执行,通常不生成目标程序。
- 优点:便于调试、交互性好、可移植。
- 缺点:执行速度慢(每次执行都要重新翻译)。
- 例子:BASIC、早期 JAVA 的解释执行等。
编译 vs 解释 一句话记忆:编译”先翻完再跑、生成目标程序、快”;解释”边翻边跑、不生成目标程序、慢”。
🟢 高级语言的完整处理过程
源程序 ──预处理程序──▶ 源程序 ──编译程序──▶ 汇编语言/目标语言 ──汇编程序──▶ 可重定位目标文件(机器码) ──装配/连接程序──▶ 绝对机器代码(可执行)二、编译过程的六个阶段(🔴 必背核心)
词法分析 → 语法分析 → 语义分析 → 中间代码生成 → 代码优化 → 目标代码生成
配合两个贯穿始终的辅助模块:表格(符号表)管理程序、出错处理程序。
1. 词法分析(Lexical Analysis)
- 任务:扫描源程序字符串,识别出一个个单词符号(token)。
- 输入:源程序(字符流)。
- 输出:单词符号序列(二元组)。
- 例:
main()→ 保留字main、左括号(、右括号)、左花括号{……
2. 语法分析(Syntax Analysis)
- 任务:根据语法规则,把单词序列组合成语法短语(如表达式、语句),判断语法是否正确。
- 输入:单词符号序列。
- 输出:语法树 / 语法单位。
3. 语义分析(Semantic Analysis)
- 任务:对语法单位进行语义审查——类型检查、类型匹配、收集类型信息,报告语义错误。
4. 中间代码生成(Intermediate Code Generation)
- 任务:把源程序转换成一种结构简单、含义明确、易生成、易译成目标代码的中间形式。
- 常用形式:四元式
(算符, 运算对象1, 运算对象2, 结果);此外还有三元式、逆波兰式等。
5. 代码优化(Code Optimization)
- 任务:对中间代码或目标代码作等价变换,使生成代码运行更快、占用空间更小。
6. 目标代码生成(Target Code Generation)
- 任务:把中间代码/语义分析结果翻译成特定机器上的绝对指令、可重定位指令或汇编代码。
三、编译程序的结构与组合
🟡 前端(Front End) / 后端(Back End)
- 前端:与源语言有关、与目标机无关的部分——对应第 1~4 阶段(词法、语法、语义、中间代码生成)。
- 后端:与目标机有关的部分——对应第 6 阶段(目标代码生成)。
- 代码优化(第 5 阶段):置于前端或后端均可。
🟡 前后端组合的两大用途
- 同一前端 + 不同后端 → 同一源语言在不同机器上的编译程序(换机器只需换后端)。
- 不同前端生成同一中间语言 + 共用后端 → 同一机器上多种语言的编译程序(加语言只需加前端)。
🟡 遍 / 趟(Pass)
- 定义:对源程序或其中间结果从头到尾扫描一次,称为一遍。每遍完成一个或几个阶段的工作。
- 一个编译程序可由一遍或多遍完成,分遍的主要依据是源语言与目标机的特征。
- 多遍优缺点:
- 优点:结构清晰、功能单一、节省内存。
- 缺点:增加 I/O 次数、降低效率。
⚠️ 易错点汇总
- 把汇编语言翻译成机器码的是 汇编器(Assembler),不是编译器。
- 编译方式生成目标程序、执行快;解释方式不生成目标程序、便于调试但慢。
- 中间代码最常见形式是四元式,格式
(算符, 对象1, 对象2, 结果)。 - 符号表管理和出错处理不是某一个阶段,而是贯穿编译全过程的辅助模块。
📝 常考题型
- 简答(高频):编译程序分哪几个阶段?各阶段的功能是什么?
- 填空/选择:编译与解释的根本区别;分”遍”的优缺点;符号表的作用;前端/后端的划分。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章智能推荐
1
编译原理知识点
编译原理编译原理知识点(考试向)
2
复习提纲
编译原理编译原理复习提纲(考试向)
3
文法和语言
编译原理编译原理知识点(考试向)
4
词法分析
编译原理编译原理知识点(考试向)
5
自顶向下语法分析
编译原理编译原理知识点(考试向)
随机文章随机推荐










