编译程序的工作过程一般划分为五个阶段:词法分析、语法分析、语义分析与中间代码产生、优化、目标代码生成。



词法分析:也就是从左到右一个一个的读入源程序,识别一个单词或符号,并进行归类。


语法分析: 在词法分析的基础上,将单词序列分解成各类语法短语,如“程序”,“语句”,“表达式”等。


语义分析:审查源程序是否有语义的错误,当不符合语言规范的时候,程序就会报错。


中间代码生成:在进行了语法和语义的分析工作之后,编译程序将源程序变成了一种内部表示形式,这种内部表示形式叫做中间语言或中间代码。


代码优化:这个阶段是对前阶段的中间代码进行变换或改造,目的是使生成的目标代码更为高效,即节省时间和空间。


目标代码生成:也就是把优化后的中间代码变换成指令代码或汇编代码。