计算机12个核心概念的理解与应用

合集下载

计算机科学的核心原理

计算机科学的核心原理

计算机科学的核心原理计算机科学是一门研究计算机及其应用的学科,它探讨了计算机的核心原理和基本概念。

在计算机科学领域中,有一些核心原理对我们理解计算机的运行方式和其背后的原理至关重要。

本文将要介绍一些计算机科学的核心原理。

一、二进制系统计算机中最基本的原理之一是二进制系统。

二进制系统使用只有0和1的两个数字来表示数据和指令。

计算机内部的所有信息都是以二进制的形式表示的,包括数字、文字、图像等。

在二进制系统中,电子开关(transistors)通过打开或关闭来表示逻辑值0或1。

二、布尔逻辑和门电路布尔逻辑是计算机科学中的基础,它基于数学家乔治·布尔的逻辑理论。

布尔逻辑使用逻辑运算符(如与、或、非)来决定逻辑上的真或假。

这些逻辑运算符可以通过门电路来实现,例如与门、或门和非门。

门电路是由电子元件(如电晶体和电路板)构成的电子电路,用于处理和传输逻辑信号。

三、计算机体系结构计算机体系结构是计算机硬件和软件之间的接口。

它决定了计算机的组织方式、指令集架构、内存层次结构等。

计算机体系结构的核心原理包括冯·诺依曼体系结构和哈佛体系结构。

冯·诺依曼体系结构是一种存储程序的计算机体系结构,它将指令和数据存储在同一存储器中。

哈佛体系结构则将指令存储和数据存储分开,采用不同的存储器单元。

四、算法和数据结构算法是解决问题的一系列步骤或指令。

在计算机科学中,算法是设计和分析各种计算问题的基础。

而数据结构则是组织和存储数据的方式。

好的算法和数据结构可以提高计算机程序的效率和可靠性。

常见的算法和数据结构包括排序算法、搜索算法、树、图等。

五、操作系统原理操作系统是计算机系统的核心软件,它负责管理计算机的硬件和软件资源。

操作系统原理包括进程管理、内存管理、文件系统和设备管理等。

操作系统通过提供接口和服务来屏蔽底层硬件的复杂性,使应用程序能够方便地访问硬件资源。

六、计算机网络计算机网络是将多台计算机连接起来,实现信息共享和通信的技术。

操作系统重点概念

操作系统重点概念

操作系统重点概念1、进程:进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。

2、线程:线程是操作系统能够进行运算调度的最小单位。

它被包含在进程之中,是进程中的实际运作单位。

一条指令,必须在一个线程中被执行。

3、进程状态:进程状态是用来表示进程在内存中的状态,包括:新建、就绪、阻塞、运行、终止等状态。

4、进程调度:进程调度是操作系统中最重要的一种调度,也是操作系统提供给用户的唯一接口。

5、死锁:死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象。

6、文件系统:文件系统是操作系统在磁盘上组织文件的方法。

7、文件控制块:文件控制块是用来表示文件在磁盘上的存储结构。

8、虚拟内存:虚拟内存是操作系统提供给用户的内存,它使得应用程序认为它拥有连续可用的内存,实际上是被分割到多个不同的物理内存碎片中。

9、中断:中断是指计算机运行过程中,出现某些意外情况而由硬件或者软件引起的计算机执行顺序突然发生改变的现象。

10、中断向量表:中断向量表是用来存放中断处理程序的入口的。

11、系统调用:系统调用是应用程序请求操作系统为其服务的一种方式。

12、作业调度:作业调度是操作系统中用来控制作业进入内存的程序。

13、设备驱动程序:设备驱动程序是用来控制硬件设备的中断处理程序。

14、目录树:目录树是用来组织和管理文件系统中文件的树形结构。

15、文件权限:文件权限是指对文件可以进行读、写、执行等操作的权限控制。

操作系统基本概念操作系统是计算机系统的核心组件,负责管理和控制计算机系统的硬件和软件资源。

它使得计算机能够高效、有序、安全地运行各种应用程序,并提供给用户一个友好、易于使用的操作环境。

一、操作系统的定义和功能操作系统是一种系统软件,它控制计算机的硬件和软件资源,为用户和应用程序提供一个统一、标准的接口。

操作系统的主要功能包括:1、资源管理:操作系统负责分配和释放计算机的各种资源,如CPU、内存、磁盘空间、网络等。

(技术规范标准)计算机科学与技术(计算机科学方向)专业规范

(技术规范标准)计算机科学与技术(计算机科学方向)专业规范

计算机科学与技术(计算机科学方向)专业规范教育部高等学校计算机科学与技术专业教学指导分委员会2005年10月17日近十年来,计算机学科发生了巨大的变化,这一变化对计算机专业的教育产生了深远的影响。

从历史上看,在计算机学科发展的早期,数学、逻辑、电子学、程序语言和程序设计是支撑学科发展的主要专业基础知识。

到了20世纪60—70年代,数据结构与算法、计算机原理、编译技术、操作系统、程序设计与程序语言、数据库系统原理等成为学科的主要专业基础知识。

从20世纪80年代开始,并行与分布计算、网络技术、软件工程等开始成为新的学科内容,突破了计算机学科原有的专业设置框架,逐渐形成了在“计算机科学与技术”一个专业之下分为计算机科学、计算机工程、软件工程、信息技术、信息系统等多个专业方向的新格局。

本规范分为五个部分:一、历史、现状及发展方向;二、培养目标与规格;三、教育内容和知识体系;四、办学条件;五、主要参考指标。

第三部分的专业教育内容和知识体系仅阐明了知识体系、课程设置的总体描述与指导原则,详细内容见附录1与附录2。

在历史、现状及发展方向这部分中,规范从整个专业,即计算机科学与技术的角度进行了阐述,而没有局限在计算机科学领域内。

一、历史、现状及发展方向1. 主干学科概况计算机科学是计算机科学与技术领域最早出现的学科。

从1956我国高校开办“计算装置与仪器”专业算起,到现在采用的“计算机科学与技术”一级学科的称谓,计算机专业教育在中国已经走过了近50年的历程。

(1) 发展初期(1956—1977年)1956年,国务院制定了新中国第一个科学技术发展规划,即《1956—1967年十二年科学技术发展远景规划》。

这个规划除确定了56项重大研究任务以外,还确定了发展电子计算机、半导体、无线电电子学和自动化技术等6项紧急措施,从而促使我国计算机教育事业发展第一个高潮的到来。

到1958年,共有15所高校开办了计算机专业。

该阶段的计算机教育有以下特点:1) 专业创始人从国外学习归来,带回计算机新技术。

原创云计算中的核心概念是什么

原创云计算中的核心概念是什么

原创云计算中的核心概念是什么云计算是近年来飞速发展的一项技术,它不仅应用于各行业,也改变了我们日常生活的方方面面。

而在云计算中,有一些核心概念是我们必须理解和掌握的。

本文将重点探讨云计算中的核心概念。

1. 虚拟化技术虚拟化是指将计算机硬件资源进行抽象和隔离,使得多个虚拟的计算机可以共享同一套物理硬件资源。

在云计算中,虚拟化技术是实现资源共享和灵活性的关键。

通过虚拟化技术,云服务提供商可以将物理服务器分割成多个虚拟机,每个虚拟机都可以运行独立的操作系统和应用程序。

用户可以根据自己的需求创建、启动、停止和删除虚拟机,从而实现对计算资源的弹性使用。

2. 弹性伸缩弹性伸缩是云计算的一项重要特性,它可以根据实际需求动态调整计算资源的数量,以适应业务的变化。

在传统的计算模式下,为了应对峰值流量,我们通常需要提前购买大量的硬件设备,但这样会导致资源浪费。

而云计算中的弹性伸缩可以根据实际负载情况自动调整计算资源,从而实现资源的优化使用。

弹性伸缩可以根据监控数据实时调整资源的数量。

当负载增加时,系统可以自动增加虚拟机的数量,以应对高峰期的需求;当负载下降时,系统可以自动减少虚拟机的数量,以节约资源。

这种灵活性和自动化的特性使得云计算在应对不确定性和变化性方面具有巨大的优势。

3. 多租户多租户是云计算中的一种资源共享模式,它允许多个用户共享同一组硬件资源,但彼此之间相互隔离,互不干扰。

这在公共云环境中特别重要,因为不同用户之间存在各种安全和隐私问题。

通过多租户模式,云服务提供商可以将物理资源虚拟化为多个独立的租户,每个租户都拥有自己的虚拟机、存储空间和网络资源。

这样,不同用户之间的数据和应用程序可以完全隔离,互不干扰。

同时,多租户模式还可以提高资源利用率,降低成本,为用户提供更具竞争力的价格。

4. 自动化管理云计算的自动化管理是指通过软件和工具实现对云资源的自动配置、监控和管理。

自动化管理在云计算中发挥着至关重要的作用,它可以提高效率、降低成本,并优化资源使用。

介绍计算机语言处理的基本概念与应用

介绍计算机语言处理的基本概念与应用

介绍计算机语言处理的基本概念与应用计算机语言处理是计算机科学和人工智能领域的重要研究方向,是对计算机语言进行分析、理解和生成的过程。

本文将介绍计算机语言处理的基本概念与应用,并按照以下几个方面进行划分讨论:编译原理、语法分析、语义分析与代码生成、自然语言处理、机器翻译和语言模型。

一、编译原理编译原理是计算机语言处理的核心概念之一,它研究的是将高级语言转化为机器语言的过程。

编译器是完成这一过程的关键工具,它将源代码中的高级语言表达转化为机器指令的二进制代码。

编译原理涉及到词法分析、语法分析、语义分析等多个环节,同时还包括目标代码生成和优化等技术。

二、语法分析语法分析是计算机语言处理中的重要环节,它主要负责根据给定的语法规则对输入的语句进行分析和判断是否合法。

语法分析器通过构建语法树或者语法图表示输入语句的结构,进而进行后续的语义分析和代码生成。

常用的语法分析算法包括递归下降、LL(1)文法、LR(1)文法等。

三、语义分析与代码生成语义分析是对输入语句的语义进行分析和判断,确保语义的正确性,并将其转化为中间代码或者机器代码。

语义分析包括类型检查、作用域分析、常量折叠等过程,它是编译过程中一项非常关键的工作。

代码生成则是根据语法分析和语义分析的结果生成机器可执行的目标代码,常用的代码生成技术有目标代码生成、中间代码生成和代码优化等。

四、自然语言处理自然语言处理是计算机语言处理的一个子领域,其研究的对象主要是人类自然语言。

自然语言处理涉及到词法分析、句法分析、语义分析、语篇分析等多个方面,旨在开发能够理解和生成自然语言的计算机系统。

自然语言处理在机器翻译、问答系统、信息提取等领域有着广泛的应用。

五、机器翻译机器翻译是指利用计算机技术实现不同语言之间的自动翻译。

它通过语言模型、句法分析和语义分析等技术将源语言的文本转化为目标语言的文本。

机器翻译领域涉及到统计机器翻译、神经机器翻译等多个子领域,近年来取得了很大的进展。

计算机科学知识体系的概述

计算机科学知识体系的概述

计算机科学知识体系的概述计算机科学知识体系的概述随着着计算机科学技术的不断发展,计算机科学知识的体系也在不断扩充和深化,变得越来越复杂和庞大。

计算机科学知识体系提供了计算机科学的基础,对于计算机科学专业学生非常重要。

本文将对计算机科学知识体系进行详细的概述与分析。

I. 计算机系统计算机系统是指计算机硬件和软件两部分组成的整体。

计算机硬件由计算机的主体部分和外部设备组成,主体部分包括中央处理器、内存、存储器、输入输出控制器等,外部设备包括键盘、鼠标、打印机、显示器等。

计算机软件包括操作系统、应用软件、开发工具等。

计算机系统是计算机科学知识体系的基础。

II. 算法与数据结构算法是指解决问题的一系列步骤,数据结构是指数据组织、存储和管理方式。

算法与数据结构是计算机科学中的核心概念。

良好的算法和数据结构能够提高计算机程序的效率,并且能够帮助计算机程序员更好地理解问题。

III. 编程语言计算机编程语言是计算机程序员用来编写计算机程序的工具。

编程语言分为低级语言和高级语言。

低级编程语言主要包括机器语言和汇编语言,高级语言包括C语言、Java语言、Python语言等。

不同的编程语言适合不同的应用场景,而学会多种编程语言可以帮助计算机程序员更好地理解问题,并更好地选择适合的编程语言。

IV. 网络通信计算机网络是将多个计算机设备连接起来,实现信息交换和资源共享的计算机系统。

网络通信是计算机领域的重要概念之一。

计算机程序员需要掌握网络通信的相关知识,以实现计算机程序之间的数据交互。

V. 数据库数据库指的是将大量数据存储在计算机中,通过一定方式进行管理、处理和查询的系统。

数据库管理系统(DBMS)是一种软件应用系统,用来管理和维护计算机数据库系统。

掌握数据库相关技术能够帮助计算机程序员高效地存储和查询数据。

VI. 人工智能人工智能(AI)是人类智能在计算机领域的应用,通过计算机模拟人类大脑的运行方式,以完成人类难以完成的任务。

计算机课程的核心概念

计算机课程的核心概念

计算机课程的核心概念计算机课程的核心概念是当今信息化社会中必不可少的一部分。

随着科技的迅猛发展和互联网的普及,计算机课程不仅仅是技术人员的必备素养,更是每个现代人应具备的基本能力之一。

从初级的计算机基础到高级的编程技能,每一个环节都承载着深厚的技术内涵和广泛的应用场景。

计算机课程的核心概念涵盖了计算机系统的基本结构与原理。

学习者需了解计算机硬件与软件的关系,包括中央处理器、内存、输入输出设备等组成部分的功能与相互作用。

这些基础知识为理解计算机运作原理奠定了坚实的基础,有助于解决计算机系统中可能出现的各种问题。

计算机网络与通信是计算机课程中不可或缺的一环。

随着互联网的普及,计算机之间的连接与数据传输变得日益重要。

学习者需要掌握网络协议、数据传输技术、网络安全等关键概念,以确保信息在网络中的安全和高效传输。

网络通信的理解不仅仅限于基础的连接和配置,更包括了对现代网络应用(如云计算、大数据处理等)的理解和应用能力。

第三,数据结构与算法作为计算机科学的核心内容,直接影响到程序的性能和效率。

学习者需要学习并理解常见的数据结构(如数组、链表、树等)及其操作,以及常用算法的设计与实现原理。

这些知识不仅为编写高效、稳定的程序提供了基础,还培养了解决实际问题时的思维方式和方法论。

软件工程与开发方法是计算机课程中的重要内容之一。

学习者需要掌握软件开发的基本流程,包括需求分析、设计、编码、测试和维护等阶段。

理解软件工程的核心概念有助于开发团队协同工作、提高开发效率,确保软件产品的质量和稳定性。

计算机课程的核心概念不仅仅是关于技术本身的学习,更重要的是其背后蕴含的思维方式和解决问题的能力。

通过深入学习这些核心概念,学习者能够培养出扎实的技术基础和创新能力,从而在快速变化的科技领域中保持竞争力。

在计算机基础知识方面,理解计算机系统的构成和运作原理是学习的第一步。

从硬件到软件的互动,每一个细节都影响着计算机的性能和功能。

掌握这些基础知识不仅有助于诊断和解决计算机问题,还能够帮助学习者更好地理解新技术的引入和应用。

计算机基础知识的核心概念

计算机基础知识的核心概念

计算机基础知识的核心概念计算机基础知识是现代社会中无可忽视的一部分。

无论是个人生活还是商业运作,计算机都扮演着重要的角色。

理解计算机基础知识的核心概念对于提升个人技能和适应技术发展至关重要。

本文将介绍几个关键的核心概念,帮助读者建立对计算机基础知识的全面理解。

一、硬件与软件计算机系统由硬件和软件两个主要部分组成。

硬件包括计算机的实体部分,如主机、显示器、键盘、鼠标等。

它们是构成计算机的物理组件。

软件指的是计算机程序和数据,是指令的集合,可以控制硬件进行任务和操作。

硬件和软件是相互依赖的。

硬件提供了执行软件所需的计算和存储能力,而软件则指挥硬件完成特定任务。

理解硬件和软件之间的关系是掌握计算机基础知识的第一步。

二、操作系统操作系统是计算机系统的核心。

它是一种软件,可以管理和控制计算机的硬件和软件资源。

操作系统提供了用户与计算机系统之间的接口,可以使用户通过交互方式操作计算机。

操作系统的功能包括进程管理、内存管理、文件管理、设备管理等。

它负责调度任务,分配资源,确保计算机的稳定运行。

常见的操作系统包括Windows、Mac OS和Linux等。

三、数据表示与存储计算机中的数据通常以二进制形式表示和存储。

二进制系统使用了只有0和1两个数字,称为位(bit)。

八个位被组合成一个字节(byte),字节是计算机存储和处理信息的基本单位。

不同的数据类型可以使用不同数量的位来表示。

例如,整数通常使用32位或64位表示,字符使用8位表示。

了解数据的表示和存储方式可以帮助我们更好地处理和操作计算机中的信息。

四、算法与程序设计算法是解决问题的一系列步骤和规则。

计算机程序是实现算法的具体指令集合。

程序设计是指根据问题的要求设计和编写计算机程序的过程。

程序设计语言提供了实现算法的工具和语法规则。

常见的编程语言包括C、Java、Python等。

程序设计涉及到问题分析、算法设计、编码和调试等环节,是计算机基础知识中的重要组成部分。

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

Binding 绑定--------------------------------------------------------------------------------通过将一个抽象的概念与附加特性相联系,从而使一个抽象概念具体化的过程。

例如,把一个进程与一个处理机、一种类型与一个变量名、一个库目标程序与子程序中的一个符号引用等分别关联起来。

在逻辑程序设计中,用面向对象语言将一个方法与一个消息相关联,从抽象的描述建立具体的实例。

绑定有时又译为联编、结合等。

然而译为绑定既可表音,又能达义,在计算机专业英语的汉译中能达到这一境界的诚然不多。

Complexity of Large Problems 大问题的复杂性随着问题规模的增长,复杂性呈非线性增加的效应。

这是区分和选择各种方法的重要因素。

以此来度量不同的数据规模、问题空间和程序规模。

假如我们编写的程序只是处理全班近百人的成绩排序,选择一个最简单的排序算法就可以了。

但如果我们编写的程序负责处理全省几十万考生的高考成绩排序,就必须认真选择一个排序算法,因为随着数据量的增大,一个不好的算法的执行时间可能是按指数级增长的,从而使你最终无法忍受等待该算法的输出结果。

软件设计中的许多机制正是面向复杂问题的。

例如在一个小小程序中标识符的命名原则是无关重要的,但在一个多人合作开发的软件系统中这种重要性会体现出来;goto语句自由灵活、随意操控,但实践证明了在复杂程序中控制流的无序弊远大于利;结构化程序设计已取得不错成绩,但在更大规模问题求解时保持解空间与问题空间结构的一致性显得更重要。

--------------------------------------------------------------------------------Conceptual and Formal Models 概念和形式模型--------------------------------------------------------------------------------对一个想法或问题进行形式化、特征化、可视化和思维的各种方法。

例如,在逻辑、开关理论和计算理论中的形式模型,基于形式模型的程序设计语言的风范,关于概念模型,诸如抽象数据类型、语义数据类型以及用于指定系统设计的图形语言,如数据流和实体关系图。

概念和形式模型主要采用数学方法进行研究。

例如用于研究计算能力的常用计算模型有图灵机、递归函数、λ演算等;用于研究并行与分布式特性的常用并发模型有Petri网、CCS、π演算等。

只有跨越了形式化与非形式化的鸿沟,才能到达软件自动化的彼岸。

在程序设计语言的语法方面,由于建立了完善的概念和形式模型,包括线性文法与上下文无关文法、有限自动机与下推自动机、正则表达式与巴克斯范式等,所以对任何新设计语言的词法分析与语法分析可实现自动化,典型的软件工具有lex和yacc。

在形式语义方面,虽然操作语义学、指称语义学、公理语义学和代数语义学四大流派均取得不少成果,但语义分析工具目前还仅限于实验室应用。

至于程序设计语言的语用方面,由于严重缺乏概念和形式模型,人们对语言的语用知之甚少,更谈不上什么自动化工具。

□Consistency and Completeness 一致性和完备性--------------------------------------------------------------------------------在计算机中一致性和完备性概念的具体体现包括诸如正确性、健壮性、可靠性这类相关的概念。

一致性包括用作形式说明的一组公理的一致性、观察到的事实与理论的一致性、一种语言或接口设计的内部一致性等。

正确性可看作部件或系统的行为对声称的设计说明的一致性。

完备性包括给出的一组公理使其能获得预期行为的充分性、软件和硬件系统功能的充分性、以及系统处于出错和非预期情况下保持正常行为的能力。

一致性与完备性是一个系统必须满足的两个性质,在形式系统中这两个性质更加突出。

如果你提出了一个公理系统,人们首先会质问的问题就是该系统是否一致的?该系统是否完备的?一致性是一个相对的概念,通常是在对立统一的双方之间应满足的关系,例如实现相对于规格说明的一致性(即程序的正确性)、数据流图分解相对于原图的一致性、函数实现相对于函数原型中参数、返回值、异常处理的一致性等。

完备性也应该是一个相对的概念,通常是相对于某种应用需求而言。

完备性与简单性经常会产生矛盾,应采用折衷的方法获得结论。

□--------------------------------------------------------------------------------Efficiency 效率--------------------------------------------------------------------------------关于诸如空间、时间、人力、财力等资源耗费的度量。

例如,一个算法的空间和时间复杂性理论的评估。

可行性是表示某种预期的结果(如项目的完成或元件制作的完成)被达到的效率,以及一个给定的实现过程较之替代的实现过程的效率。

对算法的时空效率进行分析是最常见的一个实例。

但设计与实现算法的人力、财力等资源耗费经常会被忽略。

销量好象Windows一样的商品化软件投入再多人力、财力也在所不惜,但作为普通的应用软件当然不值得这样精益求精。

与其他商品的生产一样,软件生产不能单纯追求产品的性能,同样重要的是提高产品的性能价格比。

软件产业追求的目标不仅仅是软件产品运行的效率,而且还包括软件产品生产的效率。

考虑效率的最佳方法是将多个因素综合起来,通过折衷获得结论。

□--------------------------------------------------------------------------------Evolution 演化--------------------------------------------------------------------------------更改的事实和它的意义。

更改时各层次所造成的冲击,以及面对更改的事实,抽象、技术和系统的适应性及充分性。

例如,形式模型随时间变化表示系统状况的能力,以及一个设计对环境要求的更改和供配置使用的需求、工具和设备的更改的承受能力。

演化要表达的实际上是生命周期的概念,软件设计活动贯穿了整个软件生命周期,包括各种类型的系统维护活动。

在工业生产的并行工程中采用了一系列称为DFX的技术,如Design For Assembling、Design For Manufacturing等,主张在设计阶段就全面考虑产品的整个生命周期。

可以说在软件开发中早就采用了与DFX类似的技术,毕竟在软件生命周期中维护期占的比例更大。

□--------------------------------------------------------------------------------Levels of Abstraction 抽象层次--------------------------------------------------------------------------------计算中抽象的本质和使用。

在处理复杂事物、构造系统、隐藏细节及获取重复模式方面使用抽象,通过具有不同层次的细节和指标的抽象能够表示一个实体或系统。

例如,硬件描述的层次、在目标层级内指标的层次、在程序设计语言中类的概念、以及在问题解答中从规格说明到编码提供的详细层次。

计算机学科为认知论带来的贡献并不多,相反它从其他学科(如数学、科学、工程等)中借用了许多思维方式,而这些思维方式是人类认识与改造世界的基本方法。

抽象是人类认知世界的最基本思维方式之一。

罗素曾断言:发现一对鸡、两昼夜都是数2的实例,一定需要很多年代,其中所包含的抽象程度确实不易达到;至于1是一个数的发现,也必定很困难[3:p8]。

近世代数又称抽象代数,其名称与思路均很好地体现了抽象这一思维方式。

在许多具体的代数系统中数学家们抽取了群、环、域等抽象代数,而在这些抽象代数中抽取共性,还可提炼出更抽象的概念——范畴[4],范畴是这些抽象代数的一种抽象。

抽象源于人类自身控制复杂性能力的不足:我们无法同时把握太多的细节,复杂的问题迫使我们将这些相关的概念组织成不同的抽象层次。

日常生活中的is-a关系是人们对概念进行抽象和分类的结果,例如苹果是一种水果,水果是一种植物等,生物学采用的界、门、纲、目、科、属、种标准生物分类方法是这一思维方式的经典应用。

将这种is-a关系在程序中直接表达出来而形成的继承机制,是面向对象程序设计最重要的特征之一。

在软件设计中太容易找到不同的抽象层次,例如变量→类型、对象→类→ADT[5]、实现→规格说明(程序正确性定义的相对性)、数据流图的分解与平衡等。

从绑定这一概念的定义可看出,只有在不同抽象层次的前提下才会存在绑定。

□--------------------------------------------------------------------------------Ordering in Space 空间有序--------------------------------------------------------------------------------在计算学科中局部性和近邻性概念。

除了物理上的定位(如在网络和存贮中)外,还包括组织方式的定位(如处理机进程、类型定义和有关操作的定位),以及概念上的定位(如软件的辖域、耦合、内聚等)。

正如画家或雕塑家在平面或立体上创造一件艺术杰作,空间有序追求的也是一种空间上的美感。

这种美感会真实地存在(例如一份可读性极佳的源程序清单),但更多地是在思维空间之中(例如程序的结构或模块之间的关系)。

四年专业训练的目标之一是培养我们良好的审美观。

在软件领域中,这种美感小至程序中的一行注释,大到逻辑上与物理上的模块构成,以致整个软件的体系结构。

你是否发现结构化程序比充斥goto语句的程序在空间上更加有序,而面向对象程序通常比结构化程序更具有美感?软件工程师的桌面上总是整洁的,因为他(她)喜欢空间有序。

桌面一蹋糊涂的人可能是天才,但未必能成为一名合格的软件工程师。

□--------------------------------------------------------------------------------Ordering in Time 时间有序--------------------------------------------------------------------------------按事件排序中的时间概念。

相关文档
最新文档