抽象化 (计算机科学)

✍ dations ◷ 2024-12-23 00:34:24 #计算机科学,数据管理,编程典范

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

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

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

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

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

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

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

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

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

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

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

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

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

相关

  • 网页网页(英语:web page)是一个适用于万维网和网页浏览器的文件,它存放在世界某个角落的某一部或一组计算机中,而这部计算机必须是与互联网相连。网页经由网址(URL)来识别与访问,当我们
  • 廾部,为汉字索引里为部首之一,康熙字典214个部首中的第五十五个(三划的则为第二十六个)。就繁体和简体中文中,廾部归于三划部首。廾部通常是从下方为部字,且无其他部首可用者将部
  • 华盛顿纪念碑华盛顿纪念碑(英语:Washington Monument),是美国首都华盛顿哥伦比亚特区的地标,为纪念美国总统乔治·华盛顿而建造,石碑建筑物的内部中空,是世界最高的石制建筑,原本米尔斯的最初设
  • 中和中和,可以指:
  • 加西亚阿方索·加西亚·罗夫莱斯(1911年3月20日-1991年9月2日)是一名墨西哥外交官和政治家,在1982年,他与瑞典的阿尔瓦·米达尔共同获得诺贝尔和平奖。他出生于米却肯州的萨莫拉,在加入
  • 半性恋灰色性向(英语:grey-sexuality)是介于有性向和无性向之间的一种性取向,The Frisky将其定义为:“介于有性向与无性向之间,一种可以喜欢男性也可以喜欢女性的性取向”。被认为是灰色
  • 科普科学普及,简称科普,又称大众科学、流行科学(英语:popular science)或者普及科学,是指利用各种传媒以浅显的方式向普通大众普及科学技术知识,倡导科学方法、传播科学思想、弘扬科学
  • 蔡作雍蔡作雍(英语:Chok-Yung Chai,1928年-),广州人,台湾生理学家。1949年随国防医学院到台湾,1953年毕业于国防医学院医学系47期,其后留校任教,专攻生理学。1966年获得美国哥伦比亚大学哲学
  • 五复合正八面体在几何学中,五复合正八面体(英语:Compound of five octahedra,又称为Octahedron 5-Compound),是一种凹多面体,属于星形多面体。这可以被看作是多面体和星形多面体的复合体。埃德蒙
  • 锡帕里亚锡帕里亚(Siparia)是加勒比海岛国特立尼达和多巴哥特立尼达岛的一座城市,位于该岛南部,建立于1758年,2011年人口14,535,人口密度为每平方公里300人,面积47.8平方公里,海拔高度39米。