编译原理-编译器的系统结构
1. 简介
在编程语言的发展过程中,有机器语言
、汇编语言
、高级语言
的三种发展阶段。由于机器语言的复杂,难以记忆的特性,故而出现了汇编语言,但是汇编语言依赖于特定的机器平台,故而还是不方便,又出现了高级语言。
将汇编语言翻译成机器语言的过程就是汇编
;将高级语言翻译成汇编语言或者机器语言的过程就称为编译
。编译原理,主要学习的是高级语言如何翻译成汇编语言或者机器语言的过程的。
2. 编译系统的结构
编译的本质是翻译高级语言的过程,编译的输入时高级语言程序,编译的输出是汇编语言程序或者机器语言程序。那么机器是如何自动的执行翻译这个过程的呢?不妨看看人工翻译的过程:
源语言:In the room, he broke the window with a hammer.
翻译的过程:
参考文档
第一步分析的过程:
③语义分析(Semantic analysis
)
词法分析阶段是编译过程的第三个阶段。
通常从划分句子成分入手,即从主、谓、宾、定、状、补等入手。而句子中通常最重要的又是谓语,其他的一些成份是围绕着它来的。
谓语:broke
故而,我们关心的是,打
这个动作的实施者是谁,对象是谁,结果是什么…
就可以用一个图来表示:
中间是打的这个动作,然后有实施者、所用工具、实施地方、承受对象。
也就是:
目标语言:在房间里,他用锤子砸了一扇窗户。
而,我们是如何来划分句子成分的呢?就需要下面的语法分析。
②语法分析(Syntax analysis
),也叫句法分析。
词法分析阶段是编译过程的第二个阶段。
在上面句子中句子成分的分析,就是通过单词的一些序列组合而成的语法短语来识别句子的成分的。这些序列需要分析单词的词性,而是如何识别单词的词性的呢?就需要下面的词法分析。
③词法分析(Lexical analysis
)
词法分析阶段是编译过程的第一个阶段。
故而,我们分析源语言的过程,就是:
词法分析--->语法分析--->语义分析。
而编译的过程的步骤如下:
注:
【1】以上内容来自慕课编译原理课程。