前言
《计算机科学导论》的作者是美国的贝赫鲁兹,佛罗赞。它的第一章主要讲了图灵模型、冯·诺依曼模型和计算机组成部分。
图灵模型
1936年阿兰·图灵提出了一个通用计算机的设想,他认为所有的计算都可以在一种特殊的机器上执行,这就是图灵机。这种模型可以表示为设计用来完成特定任务的专用计算机。
下面这幅图是基于图灵模型的计算机:可编程数据处理器
冯·诺依曼模型
基于图灵模型的计算机都是在存储器中存储数据,冯·诺依曼指出,数据和程序的逻辑都是相同的,所以存储器也能存储程序。
四个子系统
基于冯·诺依曼模型的计算机分为四个子系统:存储器、算术逻辑单元、控制单元和输入/输出。
存储器
存储器在计算机处理过程中存储数据和程序。
算术逻辑单元
用来进行计算和逻辑运算的地方。
控制单元
对存储器、算术逻辑单元和输入/输出等子系统进行控制操作的单元。
输入/输出
输入子系统负责接受计算机外部的数据和程序,输出子系统负责将计算机处理的结果输出到计算机外部。
存储程序概念
冯·诺依曼要求将程序与数据存储在存储器中。这与早期只能数据存储在存储器的计算机结构完全不同。
现代计算机用存储器存储程序与数据,意味着程序与数据拥有相同的格式,这是因为它们都存储在存储器中。实际上是以位模式存储。
计算机组成部分
计算机由三大部分组成:计算机硬件、数据和计算机软件。
计算机硬件
如今的计算机硬件基于冯·诺依曼模型,包含四个子系统。
数据
冯·诺依曼将计算机定义为一台数据处理机,它接受数据,输出处理的数据。
存储数据
计算机以电子信号的出现和消失的特定方式来存储数据,这意味着一台计算机可以存储两种状态之一的数据。
组织数据
数据以位模式存储在计算机内部,但在计算机外部却可以表现为不同的形式。如今,数据并不是杂乱无章地组织地,数据会被分为小的单元,再由这些小的单元组成更大的单元。
计算机软件
编程在早期的计算机中体现为一系列的开关的打开或关闭以及配线的改变。编程是数据开始实际处理之前由程序员或工程师完成的一项工作。
程序必须存储
在冯·诺依曼模型中,程序存储在存储器中。
指令的序列
这个模型要求程序必须是有序的指令集,每一个指令操作一个或多个数据,因此,一条指令可以改变前面的指令的作用。
重用性:这我理解为重复使用性,类似c语言的函数,如果每一项任务的程序都是相对独立的,为了完成大量的任务,会出现很多重复的指令,编程也会变得困难。图灵模型和冯·诺依曼模型通过仔细地定义计算机可以使用不同地指令集,使编程变得简单。
算法
这也是我第一次了解算法的概念
对于一些问题,程序员需要用循序渐进的方式解决问题,接着尽量找到合适的指令解决问题,这种按照步骤解决问题的方法就是算法。
语言
在早期,只有机器语言这一种计算机语言,这种语言在编写很长的程序时,需要大量的时间,并且枯燥乏味,计算机科学家就研究出以符号代表位模式,这样计算机语言的概念就诞生了。
软件工程
冯·诺依曼模型并没有定义软件工程,软件工程是指结构化程序的设计编写,它不仅仅是用来描述完成某一项任务的应用程序,还包括程序设计中所要严格遵循的原则与规则。
操作系统
在计算机发展过程中,计算机科学家发现有一系列指令对所有程序都是公用的。例如计算机的接受和发送数据。如果这些指令只编写一次就可cao以用于所有程序,那么编程的效率会大大提高,操作系统的概念就这样诞生了。计算机操作系统当初只是为方便程序访问计算机部件的一种管理程序,如今,操作系统能够完成更多的工作。