抽象化 (计算机科学)

✍ dations ◷ 2025-12-07 00:19:19 #计算机科学,数据管理,编程典范

在计算机科学中,抽象化(英语:Abstraction)是将数据与程序,以它的语义来呈现出它的外观,但是隐藏起它的实现细节。抽象化是用来减少程序的复杂度,使得程序员可以专注在处理少数重要的部分。一个电脑系统可以分割成几个抽象层(Abstraction layer),使得程序员可以将它们分开处理。

抽象就是把一个问题或模型,以不同规则或方法所得出的不同的解(求解方法和解本身即抽象层),这些不同的解可以组合并还原成问题或模型的本身。

抽象的意义是可以忽略不是求解过程中必需的解。例如要用计算机程序去模拟“人”,在描述了人的动作(饮食、思考、移动等)符合设计要求后(如可完整表达“人”在坐下时候的动作),其他“人”的细节(躯干、器官、细胞活动乃至人际关系)都可以忽略,以集中设计需要的功能,并减低程序的复杂度。

为了使抽象的成品(算法)不会出现问题,要注意抽象时是否漏掉重要特征。

在程序设计中,高级语言是对机器指令序列的抽象。高级语言的出现,使得程序的编写得以简化,极大提高了程序的编写效率。随着软件技术的发展,组件技术进一步提升了程序抽象的级别。

另一种可取的替代方法是设计一种语言机制,允许程序师在需要的时候构建自己的抽象方法。一个通用的机制是使用过程(procedure)。通过分离过程的定义和规则,编程语言包含了两种重要的抽象方法:参数化抽象(abstraction by parameterization)和规范化抽象(abstraction by specification)。其中:

参数化抽象是用参数替换数据特征来进行抽象。这样能够归纳出模块,从而使其可以用于更多的情况。例如,可以定义一个排序抽象,既能够实现对实数数组的排序,又能够实现对整型数组的排序,或者甚至对数组类型这类一般结构都有用。

规范化抽象是将运行细节(即模块如何实现)抽象为用户所需求的行为(即模块做什么)。这是从具体实现中抽象出模块,需要的仅仅是模块的实现能够符合我们所依赖的表述形式。每当将一个过程与一个注释(这个注释提供了充分的信息,是其他人不用看过程主体就能使用该过程)关系起来,我们就会使用规范化抽象。

程序设计中,抽象类别包括下列4类:

1:过程抽象:能够引入一些新的操作;

2:数据抽象:能够引入新的数据对象类型;

3:反复运算抽象:能够反复运算遍历在集合中的元素,而不必显示如何获得元素的细节;

4:类型层次:能够从多个单独的数据类型中抽象成几组相关的类型。

相关

  • 柄锈菌纲见内文Pucciniomycetes D.Hawksw., B.Sutton & Ainsw. (1983)柄锈菌纲(学名:Pucciniomycetes),以前曾称为锈菌纲(Urediniomycetes),是担子菌门柄锈菌亚门下一个真菌的纲。此纲包含5
  • 五专五年制专科学校,简称五专,是中华民国专科学校中技术及职业教育的一环。五专系指五年制的专科学校;其他分别有三专(招收高中生,已停招)、二专(招收高职生)、二技(招收二专及五专生)、四
  • 四元素说元素或古典元素(英语:Classical elements),在古典哲学中,是一种构成世界上所有物质的最基本实体,或是能量。在历史上,许多不同的民族,都曾经建构出属于他们自己的元素思想,最著名的代
  • 乍得人猿乍得沙赫人(Sahelanthropus tchadensis),又名乍得人猿,是一种只有化石的猿,相信是生存于700万年前(7Ma)。它被称为最古老的人属祖先,是人类及黑猩猩的最近共同祖先。它是属于中新
  • 伊弗雷姆·卡齐尔伊弗雷姆·卡齐尔(希伯来语: אפרים קציר‬‎,英语:Ephraim Katzir,1916年5月16日-2009年5月30日),以色列生物物理学家和以色列工党政治家。1973年至1978年担任以色列第四任
  • 创业公司初创企业(英语:Startup Company)或者创业(英语:Startup)是勇于探索可重复和可扩展性商业模式的一家公司,一个合作伙伴或者暂时成立的组织。这些公司,一般新建的,是处于商业发展和市场
  • 计算理论计算理论(英语:Theory of computation)是数学的一个领域,和计算机有密切关系。其中的理论是现代密码协议、计算机设计和许多应用领域的基础。该领域主要关心三个方面的问题:这三
  • 中国大陆第1位中国地级市人均地区生产总值列表收录各主要年份中华人民共和国地级行政区的人均地区生产总值(人均GDP)。
  • 兰纳傣阮(北部泰语:ไทยวน,发音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gentium","
  • 2011年热带风暴李热带风暴李(英语:Tropical Storm Lee)是2011年大西洋飓风季形成的第十五个热带气旋,也是第十二场获命名的风暴。