编译原理是介绍如何将高级程序设计语言转换成计算机硬件能识别的机器语言,以便计算机进行处理
编译器在语言处理系统中的位置:
了解了编译与程序设计语言的关系,那么我们接下来再来看下编译器在语言处理系统中所处位置,如下图
编译系统的结构
那么机器是如何把高级语言翻译为汇编语言程序或机器语言程序的呢?
我们先来看下人工进行英文翻译的例子,这里引用的哈工大编译原理中的图示
图中的中间表示很重要主要起到了一个桥梁的作用,比如图中的中间表示可以使用各种语言表示。
根据上图可以看出要进行语义分析首先需要划分句子成分,那么我们是如何划分句子成分的呢?
实际上编译器在工作的时候也是经过了以上几个步骤,我们成为阶段(计算机的逻辑组织方式,在实现过程中多个阶段可能会被组合在一起实现),可以分为两大部分:分析源语言、生成目标代码,在编译器中他们分别对应编译器的前端和后端两个部分。编译器的结构如下图
了解了编译器的结构,让我们从编译器的前端开始讲起,看看词法分析、语法分析、语义分析等各个阶段都做了什么。
词法分析(扫描)