编译(Compile)来源于英文单词,意为编制、编纂。编译指将高级语言写成的程序源代码转换为二进制执行文件的过程。简单地说,就是将程序源代码转换为能够在计算机上运行的可执行文件的过程。
编译的作用
编译器(Compiler)是将一种语言转换为另一种语言的软件。编译器的作用是将程序源代码转换为二进制文件,使人类编写的高级语言程序能够被计算机执行。在计算机科学中,编译是将一种计算机语言翻译成另一种计算机语言的过程。
编译器按照特定语言的编译规则把源代码翻译成目标代码,可执行程序可以在指定的操作系统和计算机平台上执行。编译可以使程序运行更快、更高效,并消除掉许多程序错误。
编译过程
编译过程主要包括四个阶段:
1. 词法分析:将源程序分解成基本元素(单词或符号)。此阶段的主要目的是通过一定的算法来识别每个字,因为程序中有时要用到关键字,必须把这些关键字给识别出来。
2. 语法分析:根据语言的语法规则确认句子的结构并构建语法分析树。这里的语法分析是指分析程序是否按照语法结构的规定来组合单词或符号的关系的过程。
3. 语义分析:确定变量的数据类型、函数的返回类型、检查数组下标是否越界等语法语义的合法性和正确性,并进行必要的类型转换。此阶段最主要的任务是确认各种语法结构对应的符号或单词所具有的
含义。
4. 代码生成:生成目标程序的汇编代码或二进制代码。包括将源代码转换成目标中间代码,然后对中间代码进行优化再生成目标机代码的过程。
编译器的分类
编译器的分类可以按照编译目标不同进行划分,主要有:
1. 目标代码编译器: 将高级语言编译成汇编语言;
2. 可重定位代码编译器: 可将汇编语言编译成机器语言中的目标文件;
3. 静态链接器: 将所有可重定位代码合并生成单个可执行文件;
4. 动态链接器: 将模块分开编译,程序运行时根据需要动态装入运行。
编译的优缺点
优点:
1. 高级语言使程序编写更容易且更自然;
2. 高级语言程序容易维护,扩展和修改;
3. 高级语言程序更容易被阅读和理解。
缺点:
1. 高级语言编写的程序不能够直接执行,必须将其编译或解释为计算机可执行机器语言;
2. 编译过程需逐行读取,因而会影响整体的执行速度。
扫码咨询 领取资料