知识元
  查看检索历史 关闭

抽象数据类型
abstract data type

    ChouxiQng shUjU leixing 抽象数据类型(abstract data勺pe)与表示 无关的数据类型。数据类型由一个对象集合(值集) 和在该集合上定义的若干合法运算所组成的运算集 合组成。抽象数据类型用数学方法定义对象集合和 运算集合,仅通过运算的性质刻画数据对象,而独立 于计算机中可能的表示方法。其目的在于隐蔽运算 实现细节和内部数据结构,同时向用户提供该数据 类型的完整信息。 抽象数据类型的概念是逐步形成的。60年代 末到70年代,人们将用户自定义的类型称作抽象数 据类型。传统算法语言没有用户自定义类型的设 施。到60年代末,为了实现算法细节和数据内部结 构的隐蔽,SIMIJLA67语言中引人了类,随后出现 了模块概念。模块可分成模块式和模块体,模块式 定义外部可见的运算接口,模块体对外不可见,其中 可定义私有的数据结构和运算。通过接口和实现的 分离,模块提供了用户自定义类型的手段,达到数据 抽象、信息隐蔽的目的。在这个意义下,模块所定义 的数据类型称作抽象数据类型。实际上,模块提供 了一种抽象数据类型实现的手段。这种手段在 入玉月ula-2,八da等语言中得到进一步的完善和发展。 用户自定义数据类型的另一优点是设计与实现相分 离,可将模块式看作设计规约,而模块体是相应的实 现。这种分离推动了软件规约的研究,也进一步推 动了抽象数据类型的研究。 当用一个数据类型去模拟一类客观对象时,可 先给出该类型的性质和功能的描述,然后用已有的 语言设施和数据类型实现所需的功能,并证明实现 的正确性。仅通过模块式描述数据类型的型构是不 够的,还必须用抽象的方法完整地描述对象的性态 和功能。这就是用抽象数据类型表示功能规约。这 时,抽象数据类型完全独立于具体表示,反映出纯抽 象的性质。抽象数据类型的规约方法主要有二:其 一是代数方法;其二是模型方法。代数方法基于G. Birkhoff,J .D.LipSOn等的异调代数理论,经5.21115, J.A.Guttag等人的发展,其理论基础日趋完善,并逐 步应用于软件工程实践,成为有代表性的抽象数据 类型规约方法。模型方法基于C.A.R.HOare的前 后断言方法,它通过已定义的(抽象)数据类型来给 出所要定义的新类型的抽象模型。 采用代数方法,抽象数据类型的规约由两部分 组成,一是语法部分,二是公理部分。语法部分给出 了抽象数据类型的名及其上运算的定义域和值域, 公理部分则通过给出一组刻画各运算之间相互关系方程来定义各运算的含义。从语义的角度,代数 规约的语义是一类代数。在语法正确的基础上,语 义正确性是指相应代数满足规约中公理部分的所有 公理。通常,具语义正确性的语义模型代数有多个 且形成一个谱,谱的两端分别称为始语义模型和终 语义模型。该谱系为实现者提供了较大的灵活性。 基于代数方法的规约语言有OBJ,Clear等。例如用 ()印写的堆栈定义如下: obj stack; sort stack八nteger瓜刀1~; ok一OPS ptlsh:staek,integer~stack; pop:staek~staek; top:stack~integer; erllPty:stack~h刀1~; newstaek:~staek; depth:stack~integer:hidden; en均T-OPS underflow一stack; no一1llore~Integer; 。verflow~staek; 。l}以1115 lx〕p(push(s,it。))=S; toP(push(s,it。))=itern: 曰111〕ty(newstaek)=true; 助pty(push(s,item))=几1女; depth(ne叭飞切ck)=0; depth(push(s,item))=1+depth(s); 曰叮Or一阂ps pop(ne叭飞tack)=unde闭ow; toP(ne叭侣tack卜no一~“; push(s,it。)=。讹川溯ifd印th(s)) 100; job 模型方法不是对抽象数据类型中运算的性质加 以直接刻画,而是通过某些基本类型和已定义的(抽 象)数据类型来给出所要定义的新类型的抽象模型, 用已定义的运算的性质来间接刻画要定义的数据类 型中运算的特性。一般说来,抽象数据类型的模型 规约由以下三部分组成:①状态集的定义(可能包 含不变式);②初始状态定义(通常只有一个);③ 运算集的定义,通常采用输入输出断言刻画。值得 注意的是,模型只能理解行为的描述而与具体实 现无关。但如果不加注意,模型规约可能引人与实 现有关的内容。由于这种方法与正确性证明方法有 较直接的对应,因此,在规约语言中得到了广泛的应 用。如Z,VDM等。 抽象数据类型能够从抽象的角度描述客观对象 的性态,满足信息隐蔽、功能抽象、设计在前、方便验 证等软件工程的要求。其理论对软件规约、正确性 证明等课题的研究均具有重要意义,对面向对象语 言的发展产生了重要的影响。
    ......





  主管部门:国家教育部      主办单位:清华大学
  CNKI系列数据库编辑出版及版权所有:中国学术期刊(光盘版)电子杂志社
中国知网技术服务及网站系统软件版权所有:清华同方知网(北京)技术有限公司
其它数据库版权所有:各数据库编辑出版单位(见各库版权信息)
京ICP证040431号    京ICP证040441号    互联网出版许可证 新出网证(京)字008号
北京市公安局海淀分局 备案号:110 1081725