引论
编译程序:
是一个语言翻译程序,它将源语言程序翻译成目标语言程序。
编译流程:
待预处理的源程序——(预处理)源程序——(编译)目标汇编程序——(汇编)可重定位的机器语言——(连接装入)可执行
编译程序(源程序到目标汇编)的6个阶段:
- 词法分析:识别单词,返回类别、值;错误处理
- 语法分析:单词序列分解成语法短语,构成程序
- 语义分析:是否符合语义规则
- 中间代码生成:生成中间代码(容易被翻译)
- 代码优化:
- 目标代码生成:生成特定机器上的绝对指令代码或可重定向的指令代码
分析阶段、逻辑阶段
前端:词法分析、语法分析、语义分析
中端:中间代码生成、优化
后端:目标代码生成、优化
解释程序与编译程序的区别:
目标代码执行方式不同
不产生目标程序文件
不区别翻译阶段和执行阶段,翻译源程序的每条语句后直接执行
程序执行期间一直有解释程序守候
常用于实现虚拟机