编译过程

编译过程

编译(compilation , compile) 

1、利用编译程序从源语言编写的源程序产生目标程序的过程。

 2、用编译程序产生目标程序的动作。

编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。 

工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。


1:词法分析

词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号;

把作为字符串的源程序改造成为单词符号串的中间程序。

2:语法分析

编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序;

按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是否是最终的一个语法单位。

3:中间代码

中间代码是源程序的一种内部表示,或称中间语言

中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现。

4:代码优化

代码优化是指对程序进行多种等价变换,使得从变换后的程序出发,能生成更有效的目标代码

所谓等价,是指不改变程序的运行结果。

所谓有效,主要指目标代码运行时间较短,以及占用的存储空间较小。这种变换称为优化。

5:目标代码生成

目标代码生成是编译的最后一个阶段。

目标代码生成器把语法分析后或优化后的中间代码变换成目标代码。

目标代码有三种形式:

① 可以立即执行的机器语言代码,所有地址都重定位。
② 待装配的机器语言模块,当需要执行时,由连接装入程序把它们和某些运行程序连接起来,转换成能执行的机器语言代码;
③ 汇编语言代码,须经过汇编程序汇编后,成为可执行的机器语言代码。

你可能感兴趣的:(编译原理)