上一篇说了关于编译的基本概念,这篇博文我们来说说编译系统的结构。

      编译系统的结构

      在下图中,高级语言是输入,而汇编语言或者机器语言是输出,编译器的作用便是做一个中间转换的过程,我们来看看编译器是怎么把源语言翻译成机器语言的,

      编译原理入门(二)——编译系统的结构-LMLPHP

      此部分我们需要借助生活中常见的英汉互译来帮助我们更好的理解编译器的整个结构和编译过程。

      如下图,学过英语的都知道一些英语的语法组成,简单的英语结构可以分为主谓宾,而下面这句话可分为主谓宾补状,四个部分,而英文就是源语言,目标语言就是汉语。

      翻译过程的第一步则为对源语言进行结构的拆解,确定句子中各个单词的词性(名词、动词、介词等等),此为词法分析;第二步则为进行语法分析,确定各个短语的组成(例如,In the room为介词短语,broke a window动词短语等),第三步为语义分析,确定各个短语在句子中充当什么成分,然后确定各个成分之间的关系。

      编译原理入门(二)——编译系统的结构-LMLPHP

     上面内容是英语翻译成汉语的过程,当然实际上可能没有那么难,这只是为了举个例子,完整的翻译过程就是如此。我们再来看看编译器的翻译过程。

     编译原理入门(二)——编译系统的结构-LMLPHP

      编译器的翻译过程与上面的类似,词法分析——语法分析——语义分析——中间代码生成——目标代码,中间还有一些代码优化的过程(代码优化过程很重要,可以节省时间和空间)。

      编译器翻译的过程其实很容易理解,后面的几篇博文将会对各个部分进行讲解。

10-05 10:25