程序设计语言与编译ppt课件_2.6 实现模型.pptxVIP

程序设计语言与编译ppt课件_2.6 实现模型.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第二章数据类型;在实现模型中,一个数据用描述符和数据对象来表示。

描述符:描述数据对象的属性数据

数据对象:存储区及其内容

以下实现模型以PASCAL为例。

;第二章数据类型;描述符一般由类型描述和一个指针组成,如

整数类型(integer):;实数类型(real):

;指针类型的实现与前面两种类型相似,只是其值为地址。

它指向的匿名数据对象分配在堆上。;第二章数据类型;各成分按顺序存储

每个成分占整数个存储单元

描述符包含:类型名、构造符、若干三元式(选择符名,域类型,指针)

每个域对应一个三元式;typet=record

a:real;

b:integer;

end;

varx:t;

;(1)为每一成分分配整数个可编址的存储单元。

(2)描述符包括:

类型名、构造符、定义域的基类型

下界、上界、成分类型

(每个成分占)单元个数、首地址;(3)地址公式的计算

下标m..n,每个元素占k个存储单元

从首地址b到a[i]之间的位移为

k*(i-m)

则a[i]的地址为:

b+k*(i-m)=b-k*m+k*i=b+k*i

其中,b=b-k*m是编译时能计算出的;typea=array[0..10]ofreal;可变长串的表示:

静态描述符+动态描述符+堆;判定或类型的变量分配的空间应足以容纳需要最大空间的变体的值。

PASCAL的变体记录的表示包括

描述符、数据对象

case表、若干变体描述符;typev= record

a:integer;

caseb:booleanof

true: (c:integer);

false: (d:integer;e:real)

end;;判定或;对幂集可以通过访问的存储空间(例如机器字)来实现。

若在某个集合S中出现基类型的第i个元素,那么与S相关联的字的第i个位置为“1”。

两个集合的联合通过它们相关联的字的“或”操作来实现;

两个集合的交集通过“与”操作来实现。;第二章数据类型;描述符中的类型指向另外的描述符。

在编译时将所有描述符保存在一张表中,以便编译时使用。

有些描述符需要保存到运行阶段,且存储在描述符中的属性可能随运行而变化。

;typet1=array[0..3]ofinteger;

t=record

a:real;

b:t1;

c:integer

end;

;typet4=array[0..5]ofinteger;

t2=array[0..2]oft4;

文档评论(0)

Kaiser + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档