编译原理第02章ppt课件.ppt

编译原理第02章ppt课件.ppt

ID:59486338

大小:703.00 KB

页数:116页

时间:2020-09-13

编译原理第02章ppt课件.ppt_第1页
编译原理第02章ppt课件.ppt_第2页
编译原理第02章ppt课件.ppt_第3页
编译原理第02章ppt课件.ppt_第4页
编译原理第02章ppt课件.ppt_第5页
资源描述:

《编译原理第02章ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第二章数据类型数据类型实质上是对(存储器中所存储的)数据进行的抽象。数据类型包含一组值和一组操作。本章内容1、将类型作为数据的抽象表示可以分为三个层次的抽象,即内部类型、用户定义类型和抽象数据类型2、数据类型与编译有关的几个问题3、类型的实现模型2.1引言数据类型的作用实现了数据抽象把程序员从机器的具体特征中解脱出来提高了编程效率语言的某种特定的数据抽象受到两个因素的影响:语言所面向的机器(只提供定点运算或同时提供浮点运算);语言所面向的应用领域。2.数据类型的分类内部类型自定义类型语言根据所面

2、向的机器和应用定义了不同的数据类型,这些类型称为内部类型(语言定义类型、基本类型)。自Pascal语言开始,语言提供了由用户定义类型的方法。采用这类方法由用户自己定义的数据类型称为用户定义类型(自定义类型)。2.2内部类型一.内部类型的特点.反映基本硬件特性.在语言级,同一类型数据的操作使用共用的抽象表示(如+、-、*、/)1.基本表示的不可见性基本位串对程序员是不可见的。25+9结果34基本表示00011001+00001001结果00100010二.内部类型的优越性从而具有优点:不同的程序设

3、计风格可写性可读性可修改性2.编译时能检查变量使用的正确性能够进行静态类型检查如非法运算;形、实参类型匹配3.编译时可以确定无二义的操作合理地使用超载,可以提高可读性和可用性运算符的意义依赖于操作数的类型。“+”可以表示整数或实数加编译时,拒绝混合运算,或提供类型转换指令4.精度控制可以通过数据类型显式定义数据的精度floatdouble2.3用户定义类型语言除内部类型外,还允许用户借助于语言提供的数据的组合(聚合)机制,定义新的数据类型。许多语言允许程序员规定基本数据对象的聚合(乃至聚合的聚合

4、)1.笛卡尔积n个集合A1,A2,…,An的笛卡儿积:A1×A2×…×An它是一个集合,其元素是有序的n元式(a1,a2,…,an)例一个正多边形用一个整数(正多边形边数)和一个实数(边的长度)来描述,那么任意正多边形都是笛卡儿积integer×real的一个元素。笛卡儿积:Pascal语言的记录C语言的结构2.有限映像①定义:从定义域类型DT值的有限集合,到值域类型RT值的有限集合的函数(映射)称为有限映像。array[1..50]ofchar整数1至50到字符集的有限映像②值域对象通过下标选

5、取③下标越界会出错,需要进行动态检查(C语言?)④SNOBOL4的ARRAY构造符不要求值域集的所有元素是同一类型的(异质数组)⑤DT到相应值的特定子集的绑定策略:.编译时绑定(静态数组C).对象建立时绑定(半动态数组ALGOL).对象处理时绑定(动态数组APL)①任意多个数据项组成,数据项称为该序列的成分,且类型相同②串是序列③顺序文件的思想也是来自序列的概念,只能顺序读写3.序列若数据类型T包含属于同一类型T的成分--递归类型。①在类型定义中使用被定义类型的名字②指针是建立递归数据对象的重要

6、手段4.递归一个选择对象结构的构造机制规定在两个不同选择对象之间作出适当的选择。每一选择对象结构称为变体。PASCAL的变体记录;C的联合5.判定或类型T的元素所有子集的集合,称为幂集,T称为基类型。若语言缺乏集合类型,只好使用链表或其他机制来实现。6.幂集语言允许程序员利用数据聚合机制,定义复杂的数据对象。语言允许程序员利用数据聚合机制,定义以复杂的数据对象作为基本项的聚合(聚合的聚合)。structstudent{charname[48];intage;…};匿名记录vara:recordx

7、:integer;y:array[1..10]ofcharend;显式命名typecomplex=recordradius:real;angle:realend;varc1,c2,c3:complex;匿名类型用户定义类型显式命名的优点:①可读性(选择名字)②可修改性(不修改变量说明)③可分性(重复使用)④一致性检查可分性可分性概念用得比较普遍,C语言的函数就使用了可分性。把程序中相同的代码“分离”出来,用一个名字来标识需要执行这段代码时,通过该名字调用该段代码即可。2.4PASCAL类型结构一

8、.非结构类型内部类型integer,real,boolean,char2.有序类型每一元素都有唯一的前驱和后继如:整型,布尔型,字符型3.定义新的有序类型的方法枚举型其值不能直接读/写子界型动态检查范围typecolor=(red,yellow,green,white);traffic=red..green;子界varlight:color;night:=succ(green);有序例:1.数组构造构造符ARRAY定义有限映象array[t1]of[t2]t1是定义域类型(有序类型)t2是值域类

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。