关于计算机中的抽象

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关于计算机中的抽象

【摘要】在计算机的学习与研究过程中大家往往是“学其形式,掠其思维”。从抽象思维的角度,运用计算机中部分抽象的例子,来阐述在计算机学习和研究过程中,应运用抽象思维和方法,达到“学其思维,掠其形式”的目的。同时论述计算机中的几种抽象,在计算机的应用中,应运用科学的思维方法和注重计算机科学理论的研究。

关键词:计算机,抽象,抽象思维

一:抽象以及抽象思维概述

1:抽象

抽象一词的本意是指人在认识思维活动中对事物表象因素的舍弃和对本质因素的抽取。抽象的过程大体是这样的:从解答问题出发,通过对各种经验事实的比较,分析,排除那些无关紧要的因素,提取研究对象的重要特征,加以认识从而为解答问题提供某些科学定律或一般原理。

在计算机科学中,抽象释义是基于在有序集合特别是格上的单调函数,计算机程序的语义的可靠逼近理论。它可以被看作对计算机程序的部分执行,获取关于它的语义信息(比如,控制结构、信息流)而不是进行所有计算。它的主要具体应用是形式静态分析,关于计算机程序的可能执行的信息的自动提取;比如这两种分析主要有两个用途:在编译器内部,分析程序来确定特定优化或变换是否、是可适用的;针对缺陷类的程序的调试甚至校验。抽象释义是Patrick cousot和Radhia cousot所形式化的。

2:抽象思维

抽象思维是人们在认识活动中运用概念、判断、推理等思维方式,对客观现实进行间接的、概括的反应过程。属于物理认识阶段。抽象思维凭借科学的抽象概念对事物的本质和客观世界发展的深远过程反映,使人们通过认识活动获得远远超出靠感觉器官直接感知的知识。科学的抽象是在概括中反映自然界或社会物质过程的内在本质的思想,它是在对事物的本质属性进行分析、综合、比较的基础上,抽象出事物的本质属性,撇开其非本质属性,使认识从感性的具体进入抽象的规定,形成概念。空洞地、臆造的、不可捉摸的抽象是不科学的抽象。科学的、合乎逻辑的抽象思维是在社会实践的基础上形成的。抽象是对抗程序设计复

杂的一种武器,其目的是要简化程序设计的过程,在计算机学科中,抽象思维则在程序设计中有重要应用与体现。

二:抽象的目的

抽象化主要是为了使复杂度降低,以得到论域中较简单的概念,好让人们能够控制其过程或以纵观的角度来了解许多特定的事态。

三:抽象的运用

从解答问题出发,通过对各种经验事实的比较,分析,排除那些无关紧要的因素,提取研究对象的重要特征,加以认识从而为解答问题提供某些科学定律或一般原理。因此它在各个方面都有运用,而且解决问题时起着至关重要的作用。在我们使用的JDK里面就有很多抽象类,其实就是Sun公司给编程人员定的一个编程标准。如果你是一个公司的系统设计师,你下面有很多的程序员,因为系统比较大,所以系统设计师就按照系统的需求把系统分成小的功能模块,小的功能模块又分成小的功能函数,系统设计师可以把它们写出的一个抽象类,抽象类里面包含抽象函数,程序员实现抽象类,实现功能函数。这样用起来就比较方便。四:计算机中的抽象的部分应用

1:计算机中的抽象和逐步细化

(1)抽象和逐步细化简介

抽象是人类认识复杂事物和现象时经常使用的思维工具。抽象就是抽出事物的本质特征而暂时不考虑他们的细节。对于复杂系统问题人们借助分层次抽象的方法进行问题求解;在抽象的最高层,可以使用问题环境的语言,以概括的方式叙述问题的解。在抽象的较低层,则采用过程化的方式进行描述。在描述问题解时,使用面向问题和面向实现的术语。

(2)抽象和逐步细化相关

随着对不同层次抽象的细化,建立起过程抽象和数据抽象。前者是一个命令的指令序列,它包含一系列特定的操作系统,后者是一个命令的数据对象的集合。例如:宾馆计算机管理系统。在抽象顶层,可以用一句话来描述其功能:实现“一次性结帐”。在第二层抽象中,可描述为:为实现“一次性结帐”,要实现对客人在宾馆活动的所有数据信息的计算机管理;包括:客人信息、房租、餐饮、娱乐费用等信息的管理。在接下来的抽象中,实现上述各个功能模块的划分和描述,

写出它们的操作步骤、数据库结构等。功能模块包括:客人预订、登记、记录的增、删、改、浏览、查询、统计等操作。客人登记模块的描述有两个部分:操作命令序列(输入姓名、输入国籍、输入证件号码等)的描述和数据库信息(客人姓名、性别、出生日期、国籍、职业等)的描述。最后实现的描述就直接用数据库语言或其他区、其它程序设计语言即可。

2:程序及程序设计的抽象

(1)程序的抽象

给定一个编程或规定语言,抽象释义一般由抽象关系连接的一些语义所构成。语义是程序的可能行为的数学特征化,描述了非常接近程序的实际执行的最精确的语义被称为具体语义。例如:指令式编程语言的具体语义可能对每个程序关联上它可以生成的执行跟踪的集合。

执行跟踪使程序执行的一序列的可能的连续状态;状态典型的构成自程序计数器和内存位置(全局、栈和堆)的值。更抽象的语义是导出的,比如你可以只考虑在执行中可触及的状态的集合(相当于考虑在有限跟踪中的最后状态)。

静态分析的目的是在某些点上导出可计算的语义释义。例如,可以选择表示操纵整数变量的程序的状态,通过忘记变量的实际值并只保持它们的符号(+,-或0)。对于某些基本运算比如乘法,这种抽象不丢失任何精度:要得到乘积的符号,知道操作数的符号就足够了。对于某些其他运算,抽象可能丢失精度:比如不可能知道操作数分别是正和负的求和的符号。有时精度的丢失对使语义成为可决定性的是必要的(参见Rice定理、停机问题)。一般地说,在分析的精度和它的可决定性(可计算性)或可跟踪性(复杂性)之间要做出妥协。在实践中定义的抽象适合于想要分析的程序性质和目标程序二者的集合。

(2):程序设计的抽象

抽象是简化复杂的现实问题的途径,它可以为具体问题找到最恰当的类定义,并且可以在最恰当的继承级别解释问题。它可以忽略一个主题中与当前目标无关的那些方面,以便更充分的注意与当前目标有关的方面。抽象并不打算了解全部问题,只选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。它侧重相关细节而忽略不相关细节。抽象作为识别基本行为和消除不相关的和繁琐的细节的过程,允许设计师专注于解决一个问题的

相关文档
最新文档