编译原理:第二章 高级语言及其语法描述.ppt
《编译原理:第二章 高级语言及其语法描述.ppt》由会员分享,可在线阅读,更多相关《编译原理:第二章 高级语言及其语法描述.ppt(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所编译原理第二章第二章 高级语言及其语法描述高级语言及其语法描述 合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所第二章第二章 高级语言及其语法描述高级语言及其语法描述 o常用的高常用的高级语言言n FORTRANFORTRAN数数值计算算n COBOLCOBOL事事务处理理n PASCALPASCAL结构程序构程序设计n ADAADA大型程序、嵌入式大型程序、嵌入式实时系系统n PROLOGPROLOG逻辑程序程序设计n ALGOLALGOL算法算法语言言n C/C+C/C+系系统程序程序设计n JavaJav
2、aInternetInternet程序程序设计合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所o与机器与机器语言或言或汇编语言比言比较,高高级语言的言的优点:点:n较接近于数学接近于数学语言和工程言和工程语言言,比比较直直观、自然和易于理解自然和易于理解;n便于便于验证其正确性其正确性,易于改易于改错;n编写效率高写效率高;n易于移植易于移植.合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所2.12.1 程序语言的定义程序语言的定义o程序程序语言是一个言是一个记号系号系统o程序程序语言由两方面定言由两方面定义:n语法法n语义n语用用合肥工业大学合肥工业大学
3、计算机信息学院软件所计算机信息学院软件所一一.语法语法o程序本程序本质上是一定字符集上的字符串。上是一定字符集上的字符串。o语法法:一:一组规则,用它可以形成和用它可以形成和产生一个生一个合式合式(well-formed)的程序(形式上正确的程的程序(形式上正确的程序)序)。合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所语语 法法o词法法规则:单词符号的形成符号的形成规则。n单词符号是符号是语言中具有独立意言中具有独立意义的最基本的最基本结构构。一般包括:常数、一般包括:常数、标识符、基本字、算符、界符、基本字、算符、界符等。符等。n描述工具:有限自描述工具:有限自动机机o
4、语法法规则:语法法单位的形成位的形成规则。n规定了如何从定了如何从单词符号形成符号形成语法法单位;位;n语法法单位通常包括:表达式、位通常包括:表达式、语句、分程序、句、分程序、过程、函数、程序等程、函数、程序等;n描述工具:上下文无关文法描述工具:上下文无关文法合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所o EiEiEE+EEE+EEE*EEE*EE(E)E(E)o语法法规则和和词法法规则定定义了程序的的形式了程序的的形式结构,是判断构,是判断输入字符串是否构成一个形入字符串是否构成一个形式上正确的程序的依据。式上正确的程序的依据。o定定义语法法单位的意位的意义属于属于
5、语义问题。合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所二二.语义语义o对于于语言来言来说,不,不仅要要给出它的出它的词法、法、语法法规则,而且,而且要定要定义它的它的单词符号和符号和语法符号的意法符号的意义。离开了。离开了语义的的语言只是一堆符号的集合。各种言只是一堆符号的集合。各种语言中有形式上完言中有形式上完全相同的全相同的语法法单位,含位,含义却不相同。却不相同。o语义:对某种某种语言,定言,定义一一组规则,用它可以定用它可以定义一个一个程序的意程序的意义,称,称为语义规则。o描述方法:描述方法:n自然自然语言描述:言描述:隐藏藏错误、二、二义性和不完整性性和不完整
6、性n形式描述:操作形式描述:操作语义(PL/1)(PL/1)、指称指称语义(ADA)(ADA)、代数代数语义(PASCAL)(PASCAL)。o目前大多数目前大多数编译程序使用基于属性文法的程序使用基于属性文法的语法制法制导翻翻译方法来分析方法来分析语义。合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所三程序语言的基本功能和层次结构三程序语言的基本功能和层次结构o程序程序语言的基本功能:描述数据和言的基本功能:描述数据和对数据的数据的运算。运算。o所所谓程序,本程序,本质上上说是描述一定数据的是描述一定数据的处理理过程。程。合肥工业大学合肥工业大学 计算机信息学院软件所计算机
7、信息学院软件所程序的层次结构程序的层次结构程序程序|子程序或分程序、子程序或分程序、过程、函数程、函数|语句句|表达式表达式|数据引用数据引用 算符算符 函数函数调用用合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所程序语言每个组成成分的逻辑和实现意义程序语言每个组成成分的逻辑和实现意义 o抽象的抽象的逻辑的意的意义n数学意数学意义 o计算机算机实现的意的意义n具体具体实现合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所2.2 2.2 高级语言的一般特性(自学)高级语言的一般特性(自学)o高高级语言的分言的分类 n强制式语言强制式语言(Imperative(
8、Imperative LangugeLanguge)也称也称过程式程式语言:命令言:命令驱动,面向,面向语句句oFORTRANFORTRAN、C C、PascalPascal,AdaAda n应用式语言应用式语言(Applicative LanguageApplicative Language):注重程序所):注重程序所表示的功能,而不是一个表示的功能,而不是一个语句接一个句接一个语句地句地执行行oLISPLISP、ML ML 合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所n基于规则的语言基于规则的语言(Rule-based LanguageRule-based Langu
9、age):):检查一定的条件,当它一定的条件,当它满足足值,则执行适当的行适当的动作作oProlog Prolog n面向对象语言面向对象语言(Object-Oriented LanguageObject-Oriented Language):):封封装性装性、继承性继承性和和多态性多态性oSmalltalkSmalltalk,C+C+,Java Java 2.2.1 2.2.1 高级语言的分类高级语言的分类 合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所FORTRANFORTRANn一个程序由一个主程序段和若干一个程序由一个主程序段和若干辅程序段程序段组成。成。n辅程序段
10、可以是子程序、函数段或数据程序段可以是子程序、函数段或数据块。n每个程序段有一系列的每个程序段有一系列的说明明语句和句和执行行语句句组成。成。各段可以独立各段可以独立编译。n模模块结构,没有嵌套和构,没有嵌套和递归n各程序段中的名字相互独立各程序段中的名字相互独立,同一个,同一个标识符在不符在不同的程序段中代表不同的名字同的程序段中代表不同的名字。2.2.2 2.2.2 程序结构程序结构合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所主程序主程序 PROGRAM PROGRAM end end辅程序辅程序1 1 SUBROUTINE SUBROUTINE end end辅程序
11、辅程序2 2 FUNCTION FUNCTION end end合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所oPASCALnPASCAL程序本身可以看成是一个操作系程序本身可以看成是一个操作系统所所调用的用的过程,程,过程可以嵌套和程可以嵌套和递归。n一个一个PASCAL过程:程:过程程头;说明段(由一系列的明段(由一系列的说明明语句句组成);成);begin执行体(由一系列的行体(由一系列的执行行语句句组成);成);end合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所n作用域作用域:一个名字能被使用的区域范:一个名字能被使用的区域范围围称作称作这这个
12、名字的作用域。个名字的作用域。n允允许同一个同一个标识符在不同的符在不同的过程中代表程中代表不同的名字。不同的名字。n名字作用域名字作用域规则规则-最近嵌套原最近嵌套原则则 o一个在子程序一个在子程序B1中中说明的名字明的名字X只在只在B1中中有效(局部于有效(局部于B1););o如果如果B2是是B1的一个内的一个内层子程序且子程序且B2中中对标识符符X没有新的没有新的说明,明,则原来的名字原来的名字X在在B2中仍然有效。如果中仍然有效。如果B2对X重新作了重新作了说明,那么,明,那么,B2对X的任何引用都是指重新的任何引用都是指重新说明明过的的这个个X。合肥工业大学合肥工业大学 计算机信息学
13、院软件所计算机信息学院软件所program main var A,B:real;procedure P1 var B:boolean;begin end procedure P2 var A:integer;begin endbegin endA(real)B(real)B(bool)A(integer)合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所nPASCAL提供了丰富的数据提供了丰富的数据类型和运算型和运算方式,它允方式,它允许用用户动态地申地申请和退和退还存存贮空空间。合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所oADAn程程序序包包(pack
14、age):把把数数据据和和操操作作代代码封封装装在在一起,支持数据抽象。一起,支持数据抽象。n一个程序包分一个程序包分为两部分:两部分:o可可见的的规范范说明部分,它定明部分,它定义了程序包外面可以了程序包外面可以访问的的对象。象。o程序包体,它程序包体,它实际定定义程序包的程序包的实现细节。合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所packageSTACKSistypeELEMisprivate;typeSTACKislimitedprivate;procedurepush(S:inoutSTACK;E:inELEM);procedurepop(S:inoutSTAC
15、K;E:outELEM);endSTACK;packagebodySTACKSisprocedurepush(S:inoutSTACK;E:inELEM);begin实现细节endpush;procedurepop(S:inoutSTACK;E:outELEM);begin实现细节endpop;end;合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所oJAVAnJava是一种面向是一种面向对象的高象的高级语言言o类(Class)o继承承(Inheritance)o多多态性性(Polymorphism)和和动态绑定定(Dynamic binding)合肥工业大学合肥工业大学 计
16、算机信息学院软件所计算机信息学院软件所classCarintcolor_number;intdoor_number;intspeed;push_break()add_oil()classTrash_Carextendscardoubleamount;fill_trash()合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所2.2.3 2.2.3 数据类型与操作数据类型与操作 o一个数据一个数据类型通常包括以下三种要素:型通常包括以下三种要素:n用于区用于区别这种种类型数据型数据对象的属性象的属性n这种种类型的数据型的数据对象可以具有的象可以具有的值n可以作用于可以作用于这种种类
17、型的数据型的数据对象的操作象的操作合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所一初等数据一初等数据类型型n数数值类型:整型、型:整型、实型、复数、双精度,型、复数、双精度,运运算:算:+,-,*,/等等n逻辑类型:布型:布尔运算:运算:,n字符字符类型:符号型:符号处理理n指指针类型型合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所标识符与名字标识符与名字o标识符符:以字母开:以字母开头的的,由字母数字由字母数字组成的成的字符串字符串。o标识符符与与名字名字两者有本两者有本质区区别:n标识符符是是语法概念法概念n名字名字有确切的意有确切的意义和属性和属性
18、合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所Jordan?标识符!?合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所标识符与名字标识符与名字o名字:名字:n值:单元中的内容元中的内容n属性:属性:类型和作用域型和作用域o名字的性名字的性质的的说明方式:明方式:n由由说明明语句来明确句来明确规定的定的n隐含含说明:明:FORTRAN FORTRAN 以以I,J,K,I,J,K,N N为首的名首的名字代表整型,否字代表整型,否则为实型。型。n动态确定:走到哪里,是什么,算什么确定:走到哪里,是什么,算什么 合肥工业大学合肥工业大学 计算机信息学院软件所计算机
19、信息学院软件所二二 数据结构数据结构1 1 数数组o逻辑上,数上,数组是由同一是由同一类型数据所型数据所组成的成的某种某种n n维矩形矩形结构,沿着每一构,沿着每一维的距离,称的距离,称为下下标。n数数组可可变与不可与不可变:编译时能否确定其存能否确定其存贮空空间的大小。的大小。n访问:给出数出数组名和下名和下标值n存放方式存放方式:按行存放按行存放,按列存放按列存放合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所数组元素地址计算数组元素地址计算o数数组A10,20A10,20的的A1A1,11为a a,各各维维下下标为标为1 1,按行存放,那么按行存放,那么AiAi,jj地
20、址地址为:a+(i-1)*20+(j-1)a+(i-1)*20+(j-1)o数数组元素地址元素地址计算公式算公式合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所内情向量内情向量o把数把数组的有关信息的有关信息记录在一个在一个“内情向量内情向量”中,每个数中,每个数组的内情向量必的内情向量必须包括:包括:维数,各数,各维的上、下限,首地址,以及数的上、下限,首地址,以及数组(元素)的(元素)的类型。型。合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所2 2 记录记录o逻辑上上说,记录结构由已知构
21、由已知类型的数据型的数据组合在一起的一种合在一起的一种结构。构。recordcharNAME20;integerAGE;boolMARRIED;CARD1000o访问:复合名:复合名 CARDk.NAMECARDk.NAMEo存存储:连续存放存放o域的地址域的地址计算:相算:相对于于记录结构起点的相构起点的相对数数OFFSETOFFSET。合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所3 3 字符串、表格、栈字符串、表格、栈o字符串:符号字符串:符号处理、公式理、公式处理理o表格:本表格:本质上是一种上是一种记录结构构o线性表:一性表:一组顺序化的序化的记录结构构o栈:一种
22、:一种线性表,后性表,后进先出,先出,POP,PUSHPOP,PUSH合肥工业大学合肥工业大学 计算机信息学院软件所计算机信息学院软件所三三 抽象数据类型抽象数据类型 o一个抽象数据一个抽象数据类型包括:型包括:n数据数据对象的一个集合;象的一个集合;n作用于作用于这些数据些数据对象的抽象运算的集合;象的抽象运算的集合;n这种种类型型对象象的的封封装装,即即,除除了了使使用用类型型中中所所定定义的运算外,用的运算外,用户不能不能对这些些对象象进行操作。行操作。o程序程序设计语言言对抽象数据抽象数据类型的支持型的支持nAda语言言通通过程程序序包包(package)提提供供了了数数据据封封装装的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理:第二章 高级语言及其语法描述 编译 原理 第二 高级 语言 及其 语法 描述
限制150内