编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。

            编译器是将汇编或高级计算机语言翻译为二进制机器语言代码的计算机程序。编译器将源程序(source language) 编写的程序作为输入,翻译产生目标语言(target language )机器代码的等价程序。通常地,源程序为高级语言(high-level language ),像C或C + +、汉语语言程序等,而目标则是机器语言的目标代码 (object code,有时也称作机器代码(machine code )),也就是可以在计算机硬件中运行的机器代码软件程序。

PS:这一过程可以表示为:源程序→编译器 →目标机器代码程序。

            高级语言编写的程序必须由一个翻译程序翻译成机器语言程序;翻译程序有两种方式,一种是编译方式,另一种是解释方式。编译方式是先将源程序翻译成汇编语言程序或机器语言程序(称为目标程序),然后再执行它。解释方式并不是先产生目标程序然后执行它,而是对源程序边翻译边执行。

            编译过程划分为六个阶段,这种划分是编译程序的逻辑组织方式。实际上,编译过程往往分为前端和后端。前端包括词法分析,语法分析,语义分析,中间代码生成和中间代码优化,主要依赖于源程序;后端包括目标代码生成,依赖与计算机硬件系统和机器指令系统。这种组织方式,便于编译程序的移植,若要将编译程序移植到不同类型的机器,只需要修改编译程序的后端即可。

            1,词法分析:是编译过程的基础,其任务是扫描源程序,根据语言的词法规则,分解和识别出每个单词,并把单词翻译成相应的机内表示。当然,词法分析在识别单词的过程中,同时也做了词法检查。(单词是语言中最小的语义单位,如语言中的关键字,保留字或基本字,标识符,常数,运算符和界限符)

            2,语法分析:语法分析在词法分析的基础上进行的。语法分析的任务是根据语言的语法规则,把单词符号串分解成各类语法单位,如表达式,语句等等。通过语法分析,可以确定整个输入符号串是否构成一个语法正确的程序。

            3,语义分析:语义分析的任务是对源程序进行语义检查,其目的是保证标识符和常数的正确使用,把必要的信息收集,保存到符号表或中间代码程序中,并进行相应的处理。

            4,中间代码生成:中间代码生成阶段的任务是在语法分析和语义分析的基础上,根据语法成分的语义对其进行翻译,这种翻译的结果即某种中间代码形式。这种中间代码结果简单,接近于计算机的指令形式,或者能很容易地翻译成计算机的指令。常用的中间代码有三元式,四元式和逆波兰式,其中三元式近似于二地址指令,四元式近似于三地址指令。

             5,中间代码优化:中间代码优化通过调整和改变中间代码中某些操作的次序,以最终产生更加高效的目标代码(压缩程序执行所占用的内存空间和执行时间)。

             6,目标代码生成:目标代码生成阶段的任务是将中间代码或优化之后的中间代码转换为等价的目标代码,即机器指令或汇编指令(目标代码依赖于具体的计算机的硬件系统结构和指令系统)。

编译原理的简介

             7,表格处理程序:源程序的各种信息需要保留在各种表格之中,在编译的各个阶段都需要查找或更新有关的表格。

             8,出错处理程序:负责发现源程序中可能出现的错误,并把错误报告给用户,指出错误的性质和发生错误的位置。