编译原理-编译器的系统结构

1. 简介

    在编程语言的发展过程中,有机器语言汇编语言高级语言的三种发展阶段。由于机器语言的复杂,难以记忆的特性,故而出现了汇编语言,但是汇编语言依赖于特定的机器平台,故而还是不方便,又出现了高级语言。
    将汇编语言翻译成机器语言的过程就是汇编;将高级语言翻译成汇编语言或者机器语言的过程就称为编译。编译原理,主要学习的是高级语言如何翻译成汇编语言或者机器语言的过程的。

2. 编译系统的结构

    编译的本质是翻译高级语言的过程,编译的输入时高级语言程序,编译的输出是汇编语言程序或者机器语言程序。那么机器是如何自动的执行翻译这个过程的呢?不妨看看人工翻译的过程:

源语言:In the room, he broke the window with a hammer.
翻译的过程:
参考文档

第一步
得到
第二部
得到
源语言
分析源语言
句子语义
生成目标语言
目标语言句子

第一步分析的过程:
③语义分析(Semantic analysis
词法分析阶段是编译过程的第三个阶段。
通常从划分句子成分入手,即从主、谓、宾、定、状、补等入手。而句子中通常最重要的又是谓语,其他的一些成份是围绕着它来的。
谓语:broke
故而,我们关心的是,这个动作的实施者是谁,对象是谁,结果是什么…
就可以用一个图来表示:
编译原理-编译器的系统结构_第1张图片
中间是打的这个动作,然后有实施者、所用工具、实施地方、承受对象。
也就是:
目标语言:在房间里,他用锤子砸了一扇窗户。

而,我们是如何来划分句子成分的呢?就需要下面的语法分析。
②语法分析(Syntax analysis),也叫句法分析。
词法分析阶段是编译过程的第二个阶段。
在上面句子中句子成分的分析,就是通过单词的一些序列组合而成的语法短语来识别句子的成分的。这些序列需要分析单词的词性,而是如何识别单词的词性的呢?就需要下面的词法分析。
③词法分析(Lexical analysis
词法分析阶段是编译过程的第一个阶段。

故而,我们分析源语言的过程,就是:
    词法分析--->语法分析--->语义分析。
而编译的过程的步骤如下:
编译原理-编译器的系统结构_第2张图片


注:
【1】以上内容来自慕课编译原理课程。

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