“计算作为一门学科”的定义

来源:互联网 发布:socket java 编辑:程序博客网 时间:2024/04/28 15:10

“计算作为一门学科”的定义

摘自:《Computing as a discipline 》
刘建文略译(http://blog.csdn.net/keminlau)
A DEFINITION OF COMPUTING AS A DISCIPLIN

Computer science and engineering is the systematic study of algorithmic processes-their theory, analysis, design, efficiency, implementation, and application that describe and transform information. The fundamental question underlying all of computing is, What can be (efficiently) automated . This discipline was born in the early 1940s with the joining together of algorithm theory, mathematical logic, and the invention of the stored-program electronic computer.

计算机科学和计算机工程是 对计算过程(algorithmic processes)的系统研究,计算过程包括描述信息和转换信息的理论、分析、设计、效率、现实和应用。这些计算(过程)的基本问题是什么是能够被有效 地自动化的。这一学科起始于上世纪四十年代初,结合了算法理论、数理逻辑和存储程序式电子计算机的发明。

The roots of computing extend deeply into mathematics and engineering. Mathematics imparts给予;传授 analysis to the field; engineering imparts design. The discipline embraces its own theory, experimental method, and engineering, in contrast with most physical sciences, which are separate from the engineering disciplines that apply their findings (e.g., chemistry and chemical engineering principles). The science and engineering are inseparable because of the fundamental interplay between the scientific and engineering paradigms within the discipline.

计 算学科的基础深深植根于数学和工程学,吸收了数学的“分析”和工程学的“设计”。同时,计算学科包含了自己的一套理论、实践方法和工程学;而一般的学科不 是这样的,像物理的科学是把理论学科与工程学科分开的(比如,化学与化工原理)。计算学科的科学理论与工程学不分开的原因是……FIXME

For several thousand years, calculation has been a principal concern of mathematics. Many models of physical phenomena have been used to derive equations whose solutions yield predictions of those phenomena-for example, calculations of orbital 轨道的 trajectories弹道, weather forecasts, and fluid flows. Many general methods for solving such equations have been devised-for example, algorithms for systems of linear equations, differential equations, and integrating functions. For almost the same period, calculations that aid in the design of mechanical systems have been a principal concern of engineering. Examples include algorithms for evaluating stresses in static objects, calculating momenta动量 of moving objects, and measuring distances much larger or smaller than our immediate perception.

几千年以来,算术一直是数学至为关心的内容。有很多物理现象的模型被用来创立方程式,并通过计算该方 程式对物理现象进行预测,比如像弹道轨迹的计算、天气广播和流体力学。很多解这些方程式的通用方法也发明出来了,比如,线性方程组、差分方程和积分方程的 算法。几乎在同一时期,算术用于辅助机械系统设计也成了工程学至为关心的内容。例子如静止物体压力评估的计算、运动物体的动力量计算等。

One product of the long interaction between engineering and mathematics has been mechanical aids for calculating. Some surveyors' and navigators' instruments date back a thousand years. Pascal and Leibniz built arithmetic calculators in the middle 1600s. In the 183Os, Babbage conceived of an “analytical engine” that could mechanically and without error evaluate logarithms, trigonometric functions, and other general arithmetic functions. His machine, never completed, served as an inspiration for later work. In the 192Os, Bush constructed an electronic analog computer for solving general systems of differential equations. In the same period, electromechanical calculating machines capable of addition, subtraction, multiplication, division, and square root computation became available. The electronic flip-flop provided a natural bridge from these machines to digital versions with no moving parts.

工程学与数学之间的一个一直以来合作的产品便是计算器(机械辅助计算的工具)了。最早的计算工具可追溯回千年以前;Pascal和 Leibniz在17世纪中期发明的机械式算术计算器。19世纪三十年代,Babbage曾构想过一架“分析机”,一种可以计算对数、三角函数和其它一般 的算术函数的机械装置。“分析机”没有被完成,它的思想却保存下来了。到二十世纪二十年代,Bush 建造了一台可解差分方程组的电动模拟计算机;同时期,可进行加减乘除和开平方的电动机械式计算机也被开发出来了。电子触发器(flip-flop)是从机 械式到电气式计算机的很自然的过渡桥梁。

Logic is a branch of mathematics concerned with criteria of validity of inference and formal principles of reasoning. Since the days of Euclid, it has been a tool for rigorous mathematical and scientific argument. In the 19th century a search began for a universal system of logic that would be free of the incompletenesses observed in known deductive systems. In a complete system, it would be possible to determine mechanically whether any given statement is either true or false. In 1931, Godel published his “incompleteness theorem,” showing that there is no such system. In the late 193Os, Turing explored the idea of a universal computer that could simulate any step-by-step procedure of any other computing machine. His findings were similar to Godel's: some well-defined problems cannot be solved by any mechanical procedure. Logic is important not only because of its deep insight into the limits of automatic calculation, but also because of its insight that strings of symbols, perhaps encoded as numbers, can be interpreted both as data and as programs.

逻辑学作为数学的一门分 支,主要研究推论和推理的形式原理的合法性的标准(criteria )。自欧几里德以来,逻辑是数学(证明)和科学论证的严谨工具。到19世纪人们开始研究通用逻辑系统,目的为了解决现有的推理系统的不完全性。在一个完全 的系统中,可以机械地判定一个命题的真值,不受自然语言的模糊性影响。1931年,哥德尔发表“不完全性定理”,证明不存在这样的系统。三十年代后期,图 灵探索了通用计算机模型——可以模拟任何计算机器过程的抽象计算机。图灵的发现类似于哥德尔的“一些定义良好的问题不能机械地解决”。逻辑的重要性不仅在 于它深刻揭示自动化计算的局限,还在于它深刻揭示了符号串(也可能被编码成数字)可以被解释成数据或指令。

This insight is the key idea that distinguishes the stored program computer from calculating machines. The steps of the algorithm are encoded in a machine representation and stored in the memory for later decoding and execution by the processor. The machine code can be derived mechanically from a higher-level symbolic form, the programming language.

后一个揭示是区分存储程序式计算机与计算器的关键点。算法的步骤可被编码成机器指令并存放于内存用于处理机执行时再进一步对指 令解码。(算法的步骤的)机器指令可以从更高级的符号——高级语言(通过编译系统)翻译而得。(KEMIN:这里是理解算法的本质的关键点。为什么说符号 串可以被解释成数据或指令是得益于对数理逻辑的研究呢?)(kemin:算法的本质——符号运算!可以拿算术运算来比较理解。二者都是算得一个结果的过 程,只是计算的材料和规则大不一样。符号是一般化了的数字,符号不仅仅有数字的语义,可被赋任何语义!而计算规则也可因问题而定。)

It is the explicit and intricate复杂的, 错综的 intertwining of the ancient threads of calculation and logical symbol manipulation, together with the modern threads of electronics and electronic representation of information, that gave birth to the discipline of computing.

在过去,算术与逻辑符号处理本有着错综复杂的关系和交互活动很长一段时期,再加上现代以来的电子技术(用电信号表达信息)便产生了计算学科。

We identified nine subareas of computing:
我们把计算学科划分为九个子领域:

  • 1. Algorithms and data structures
    2. Programming languages
    3. Architecture
    4. Numerical and symbolic computation
    5. Operating systems
    6. Software methodology and engineering
    7. Databases and information retrieval
    8. Artificial intelligence and robotics
    9. Human-Computer communication


Each has an underlying unity of subject matter, a substantial theoretical component, significant abstractions,and substantial design and implementation issues. Theory deals with the underlying mathematical development of the subarea and includes supporting theory such as graph theory, combinatorics, or formal languages. Abstraction (or modeling) deals with models of potential implementations; the models suppress detail, while retaining essential features, and provide means for predicting future behavior. Design deals with the process of specifying a problem, deriving requirements and specifications, iterating and testing prototypes, and implementing a system. Design includes the experimental method, which in computing comes in several styles: measuring programs and systems, validating hypotheses, and prototyping to extend abstractions to practice.

每一个子领域都有自己研究的问题对象、相关理论、抽象模型和设计实现问题。理论是子领域底下的数学模型,包括一些基本的支撑理论,像图论、组合论和形式语言。抽象 (或者叫建模)是理论实现的所有潜在模型;这些模型省略掉细节只留下本质的特征,目的为了能对模型的行为进行预测。设计包括分析问题、评估需求和限制、反复测试问题原型和实现系统的过程……FIXME

Although software methodology is essentially concerned with design, it also contains substantial elements of theory and abstraction. For this reason, we have identified it as a subarea. On the other hand, parallel and distributed computation are issues that pervade all the subareas and all their components (theory, abstraction, and design); they have been identified neither as subareas nor as subarea components.


The subsequent numbered sections provide the details of each subarea in three parts-theory, abstraction, and design. The boundaries between theory and abstraction, and between abstraction and design, are necessarily fuzzy; it is a matter of personal taste where some of the items go.

Our intention is to provide a guide to the discipline by showing its main features, not a detailed map. It is important to remember that this guide to the discipline is not a plan for a course or a curriculum; it is merely a framework in which a curriculum can be designed. It is also important to remember that this guide to the discipline is a snapshot of an organism undergoing constant change. It will require reevaluation and revision at regular intervals.

参考

  • 《计算机科学与技术方法论》