编译器的基本功能结构
编译器的作用
编译器可以将合法的易于人类阅读理解的源程序转化翻译为易于机器(计算机)理解的目标程序。
现在我们看到的仅仅是编译器的结果,要造一个编译器我们首先需要确定一个具体的编译器。PeachCompiler正是基于C语言的编译器。
编译器的构造
以一个C程序的编译过程为例,源程序蕴含了各种各样的语法表达式,这些表达式又可以细分为数字、变量、类型、函数、操作符等文法元素。对C语言语法,编译器需要进行词法分析、语法分析、语义解析这些处理,生成中间代码,然后再把中间代码转化为目标程序。
一个编译器的构造概括如下:
我们知道,程序是以文件为载体的,所以编译器一定有文件操作。此外,编译器以中间代码为分界线可分为前端和后端,前端与具体机器无关而后端与具体机器相关,优化贯穿编译器的整个阶段,根据编译器结构可以有前端优化和后端优化。