编译原理课件 第二章.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:74 大小:5.1MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

编译原理课件 第二章.ppt

编译原理课件第二章.ppt

预览

免费试读已结束,剩余 64 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

顾彬第二章高级语言及其语法描述与机器语言或汇编语言比较,高级语言的优点:较接近于数学语言和工程语言,比较直观、自然和易于理解;便于验证其正确性,易于改错;编写效率高;易于移植.2.1程序语言的定义一.语法语法E→iE→E+EE→E*EE→(E)语法规则和词法规则定义了程序的的形式结构。定义语法单位的意义属于语义问题。二.语义三.程序语言的基本功能和层次结构程序的层次结构程序语言每个组成成分的逻辑和实现意义2.2高级语言的一般特性2.2高级语言的一般特性2.2高级语言的一般特性主程序PROGRAM……end辅程序1SUBROUTINE……end辅程序2FUNCTION……endPASCALPASCAL程序本身可以看成是一个操作系统所调用的过程,过程可以嵌套和递归。一个PASCAL过程:过程头;说明段(由一系列的说明语句组成);begin执行体(由一系列的执行语句组成);end作用域:一个名字能被使用的区域范围称作这个名字的作用域。允许同一个标识符在不同的过程中代表不同的名字。名字作用域规则--"最近嵌套原则"一个在子程序B1中说明的名字X只在B1中有效(局部于B1);如果B2是B1的一个内层子程序且B2中对标识符X没有新的说明,则原来的名字X在B2中仍然有效。如果B2对X重新作了说明,那么,B2对X的任何引用都是指重新说明过的这个X。programmainvarA,B:real;…procedureP1varB:boolean;…begin…endprocedureP2varA:integer;…begin…endbegin…endPASCAL提供了丰富的数据类型和运算方式,它允许用户动态地申请和退还存贮空间。ADA程序包(package):把数据和操作代码封装在一起,支持数据抽象。一个程序包分为两部分:可见的规范说明部分,它定义了程序包外面可以访问的对象。程序包体,它实际定义程序包的实现细节。packageSTACKSistypeELEMisprivate;typeSTACKislimitedprivate;procedurepush(S:inoutSTACK;E:inELEM);procedurepop(S:inoutSTACK;E:outELEM);…endSTACK;packagebodySTACKSisprocedurepush(S:inoutSTACK;E:inELEM);begin……实现细节endpush;procedurepop(S:inoutSTACK;E:outELEM);begin……实现细节endpop;end;JAVAJava是一种面向对象的高级语言类(Class)继承(Inheritance)多态性(Polymorphism)和动态绑定(Dynamicbinding)classCar{intcolor_number;intdoor_number;intspeed;…push_break(){…}add_oil(){…}}classTrash_Carextendscar{doubleamount;fill_trash(){…}}2.2.3数据类型与操作2.2.3数据类型与操作标识符与名字Jordan?标识符与名字二数据结构数组元素地址计算内情向量2记录3字符串、表格、栈三抽象数据类型2.2.4语句与控制结构算符的优先次序二.语句控制语句:简单句和复合句复习:程序语言的定义复习:程序语言的基本功能和层次结构复习:高级语言的一般特性2.3程序语言的语法描述∑*的子集U和V的连接(积)定义为UV={|U&V}设:U={a,aa}V={b,bb}那么:UV={ab,abb,aab,aabb}∑*的子集U和V的连接(积)定义为UV={|U&V}V自身的n次积记为Vn=VV…V规定V0={},令V*=V0∪V1∪V2∪V3∪…称V*是V的闭包;记V+=VV*,称V+是V的正规闭包。设:U={a,aa}那么:U*={,a,aa,aaa,aaaa,…}U+={a,aa,aaa,aaaa,…}2.3.1上下文无关文法<句子><主语><谓语><间接宾语><直接宾语><主语><代词><谓语><动词><间接宾语><代词><直接宾语><冠词><名词><代词>He<代词>me<名词>book<冠词>a<动词>gave上下文无关文法的定义:一个上下文无关文法G是一个四元式G=(VT,