编译原理 |
您所在的位置:网站首页 › 编译过程的五个阶段分别是什么意思 › 编译原理 |
编译这个词相信你一定听到过很多次,那么编译是什么意思呢?这要从代码的执行过程说起。 以C语言为例,从源代码到目标可执行程序,要经历以下4个阶段: 编译程序其实可以分为两种,一种是单遍(pass)编译程序,一种是多遍编译程序。顾名思义,单遍编译程序就是只对源代码读取一遍,便可得到目标代码;而多遍编译程序则需要读取多遍,才能完成转化过程。 这样的话,既然一遍就可以得到目标代码,那为啥还要处理多遍呢? 别急,先让我们了解一下编译程序是由什么组成的。 2.1 编译过程编译的过程包括如下几个部分: 词法分析 语法分析 语义分析 中间代码生成 代码优化 目标代码生成看到这些乱七八糟的是不是很懵!没关系,咱们一个一个来理解一下。 词法分析:识别出最小的语法单位,并表示其词性。(源程序字符串 → 单词符号)语法分析:根据单词词性分析语法。(单词符号 → 语法单位)语义分析与中间代码生成:根据单词值分析语义是否正确,生成中间代码。(语法单位 → 中间代码)代码优化:对中间代码进行优化,以期产生更高效的目标代码。(中间代码 → 优化后的中间代码)目标代码生成:将中间代码转换成低级语言代码。(中间代码 → 目标代码)其实这个过程就像是我们在翻译英语文章的步骤,先分析每个单词的词性,再分析每个句子的语法,之后根据单词的意思套入语法,得到句子的翻译,但是句子的翻译要经过优化才能得到最终符合中文习惯的结果。 2.2 单遍编译程序
既然单遍就能完成的工作,为什么要进行多遍呢? 多遍遍历有如下有点: 可将编译分为编译阶段和执行阶段,使得编译程序具有可移植性。多遍编译可以使得程序充分优化,产生高质量的代码可以减少对内存的需求。什么是可移植性呢? |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |