编译器是如何工作的_编译器的工作过程详解

编译器是如何工作的_编译器的工作过程详解

编译器是如何工作的_编译器的工作过程详解

编译器介绍简单讲,编译器就是将一种语言(通常为高级语言)翻译为另一种语言(通常为低级语言)的程序。一个现代编译器的主要工作流程:源代码(source code)预处理器(preprocessor)编译器(compiler)目标代码(object code)链接器(Linker)可执行程序(executables)

编译器的种类编译器可以生成用来在与编译器本身所在的计算机和操作系统(平台)相同的环境下运行的目标代码,这种编译器又叫做本地编译器。另外,编译器也可以生成用来在其它平台上运行的目标代码,这种编译器又叫做交叉编译器。交叉编译器在生成新的硬件平台时非常有用。源码到源码编译器是指用一种高级语言作为输入,输出也是高级语言的编译器。例如:自动并行化编译器经常采用一种高级语言作为输入,转换其中的代码,并用并行代码注释对它进行注释(如OpenMP)或者用语言构造进行注释(如FORTRAN 的DOALL指令)。

编译器工作原理编译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器语言)的翻译过程。然而,也存在从低级语言到高级语言的编译器,这类编译器中用来从由高级语言生成的低级语言代码重新生成高级语言代码的又被叫做反编译器。也有从一种高级语言生成另一种高级语言的编译器,或者生成一种需要进一步处理的的中间代码的编译器(又叫级联)。

典型的编译器输出是由包含入口点的名字和地址,以及外部调用(到不在这个目标文件中的函数调用)的机器代码所组成的目标文件。一组目标文件,不必是同一编译器产生,但使用的编译器必需采用同样的输出格式,可以链接在一起并生成可以由用户直接执行的EXE,

所以我们电脑上的文件都是经过编译后的文件。

编译器的工作过程源码要运行,必须先转成二进制的机器码,这是编译器的任务。比如,下面这段源码(假定文件名叫做test.c)。

相关主题
相关文档
最新文档