以抽象数据类型为特征的语营。1
数据抽象语言抽象是人类在认识复杂现象的过程中使用的最有力的思维方法。抽象过程是计算机应用于现实世界的基础。数据抽象语言基于模块分解的方法,使用在Simula67中依顿于“类型”概念的数据结构。因此,抽象化/模块化是它的基本属性之一。面向抽象数据类型是现代计算机语言的重要发展趋势之一。诸如,CLU、Euclid、Mesa、Ada和并发 Pascal等语言都属于数据抽象语言。
和甚高级语言相反,数据抽象语言可看作是达到更高级、更抽象程序的一种“自底向上”的方法。目标是提供一个结构,即类型定义,便于让程序员能够使用自展本身达到更高一级。1
相关概念数据操纵语言数据库管理系统提供给用户用以存储、检索、修改、删除数据的语言。它通常由一组操纵数据的语句组成,大致可分为下列四类:
(1)检索语句:这些语句执行查找数据元素,将结果到主存储器。
(2)修改语句:更新或刑除数据。
(3)存储语句:增加数据库中的记录。
(4)控制语句:发出要访问的特定子模式的信号并完成对数据的存取。
数据操纵语言可分两类:
(1)可以独立使用的语言称为自容式数据语言,通常亦称为查询语言,例如SQL、QUEL等。
(2)对数库中的数据进行操纵的语句是嵌入于其它高级语言(例如COBOL、PL/1)之中的,则称为宿主式数据语言。被嵌入的高级语言就称为该数据操纵语言的宿主语言。2
抽象抽象是对于一个实体的表示,它只包括在特定的环境内这个实体的重要属性。抽象允许人们将实体的实例收集成为一些组,在这些组中它们的共同属性就不需要考虑,这些共同属性已经被抽象出来。在这些组里面,只需考虑区别单个元素的属性。这大大简化了组中的元素。当有必要看到更多的细节时,必须考虑这些实体的较低抽象水平的表示。抽象是对抗程序设计复杂性的一种武器,其目的是要简化程序设计的过程。这是一种有效的武器,因为它允许编程人员将注意力集中于重要属性,而忽略次要的属性。
当代程序设计语言中基本的两类抽象为过程抽象和数据抽象。1
过程抽象过程抽象的概念是程序设计语言的设计中最老的概念之一。甚至 Plankalkul也曾经支持了过程抽象。所有子程序都是过程抽象,因为它们提供了一种方式,让一个程序说明要完成的某些过程,而不要提供如何来完成的细节(至少是在调用程序中)。例如,当一个程序需要将某种类型的数值数据对象数组排序时,它通常使用一个子程序来进行这种排序过程。在程序中需要进行排序的位置,一条像下面这样的语句
sort_int (list, list_len)
被放置于程序内。这个调用是实际排序过程的一种抽象,其算法则不在此被说明。这种调用独立于被调用程序中的算法实现。
在子程序 sort_int的情形,其重要属性是:将要被排序的数组名字、它的元素的类型、数组的长度以及对于 sort_int的调用将导致数组被排序的这个事实。sort_int所实现的算法是一个对用户并不重要的属性。
过程抽象对于程序设计过程十分关键。这种将子程序中的算法的许多细节抽象出来的能力,使得人们有可能来构造、阅读和理解大程序。记住:现在被认为的大程序,必须至少具有好几十万行代码。
所有的子程序,包括并发了程序和异常处理程序都是过程抽象。
数据抽象必然跟随着过程抽象的发展而发展,因为每一种数据抽象中的一个不可分割的中心部分都是操作,而操作被定义成为过程抽象。3
本词条内容贡献者为:
王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所