欢迎来到天天文库
浏览记录
ID:10047656
大小:211.51 KB
页数:31页
时间:2018-05-12
《编译原理课件chap01(陈火旺)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一章引论1.1什么叫编译程序编译程序:是指这样的程序,它能够把某种语言的程序转换成另一种语言的程序,而后者与前者在逻辑上是等价的。如果源语言是诸如FORTRAN、Pascal、C、Ada、Smalltalk或Java这样的“高级语言”,而目标语言如汇编语言之类的“低级语言”这样的翻译程序则称之为编译程序。本课程主要介绍设计和构造编译程序的基本原理和方法。第一章引论编译程序又简称为“编译器”第一个编译器是20世界50年代的后期出现的FORTRAN语言编译器。同样,解释程序又简称为“解释器”,但是在概念上与编译器有明显区别:编译程序是源
2、转换系统,而解释程序是源程序的一个执行系统。编译程序的结果是得到等价源程序的某种目标机程序,而解释程序的结果是得到源程序的执行结果,即它相当于执行源程序的抽象机。第一章引论注意编译程序与解释程序的区别,一个语言的解释程序是这样的程序:它以该语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身。术语“编译”的内涵是实现从源语言表示的算法向目标语言表示的算法的等价变换。第一章引论高级语言分类及其编译:过程式语言:FORTRANPascalAdaC(特点:面向驱动,面向语句,由系列的语句组成)函数式语言:LISPMLASL(
3、注重程序表示的功能,而不是一个语句接一个语句的执行)从已有的函数出发构造更复杂的函数。逻辑式语言:PROLOG(检查一定的条件,当满足时,则执行适当的动作。)对象式语言:SMALLTALKC++(封装性、继承性、多态性)第一章引论这里主要研究过程式语言的编译高级语言分类及其编译:过程式语言:FORTRANPascalADAC函数式语言:LISPMLASL逻辑式语言:PROLOG对象式语言:SMALLTALKC++函数式语言与逻辑式语言,特别是逻辑式语言,其编译技术与过程式语言的差别比较大;因对象式语言的载体基本上是过程式的,所以其编译
4、程序也不难理解。第一章引论1.2编译过程概述编译程序的工作,从输入源程序开始到输出目标程序为止的整个过程,是非常复杂的。掌握编译过程的五个基本阶段,是我们学习编译原理课程的基本内容,把编译的五个基本阶段与英译中的五个步骤相比较,有利于对编译过程的理解:第一章引论英译与编译的比较1。识别出句子中的一个个单字2。分析句子的语法结构3。初步翻译句子的含意4。译文修饰5。写出最后译文1。词法分析2。语法分析3。语义分析中间代码生成4。优化5。目标代码生成第一章引论源程序是以文本文件方式存在注意:程序总是以字符串的方式存在。第一章引论1.2.1
5、词法分析输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词(也称单词符号,或简称符号)在词法分析阶段工作所依循的是语言的词法规则。描述词法规则的有效工具是正规式和有限自动机。第一章引论1.2.1词法分析什么是单词逻辑上相连的一组字符,从语法的角度来看,这些字符所具有的集体含义已不能再区分了,通常包括:保留字、标识符、界符、算符和常量等第一章引论例.考虑下面的一段源程序vararea,radius:real;beginread(radius);area:3.1415926*radius*radius;end.保留字:va
6、r,begin,end,read,real运算符:*,:界符:‘(’,‘)’,‘;’,‘.’标识符:radius,area第一章引论有关术语词法分析(lexicalanalysisorscanning)--Thestreamofcharactersmakingupasourceprogramisreadfromlefttorightandgroupedintotokens,whicharesequencesofcharactersthathaveacollectivemeaning.单词---token保留字---reservedw
7、ord标识符---identifier(user-definedname)第一章引论1.2.2语法分析语法分析的任务:在词法分析的基础上,根据语言的语法规则,把单词符号分解成各类语法单位(语法范畴),如“短语”、“句子”、“子句”、“程序段”等。语法规则通常用上下文无关文法描述。例.对赋值语句area:3.1415926*radius*radius进行语法分析第一章引论赋值语句的语法树*<赋值语句><标识符>:<表达式><常量><表达式>*<表达式><表达式><表达式>3.1415926<标识符>radius<标识符>radius
8、第一章引论术语语法分析(syntaxanalysisorparsing)Thepurposeofsyntaxanalysisistodeterminethesourceprogram’sphrasestructure.T
此文档下载收益归作者所有