1.1 图灵模型
图灵机:可以用于完成所有的计算的一种特殊机器。由阿兰.图灵1937年首次提出的一个通用计算设备的设想。
- 是数学上的定义
- 不是真实的机器
1.1.1 数据处理器
讨论图灵模型前,暂且把计算机定义为一个数据处理器。
数据处理器:一个接受输入数据,处理数据并产生输出数据的黑盒
该定义的问题:
- 按照这种定义,也可以认为计算器,甚至算盘也是计算机。
- 这个模型并没有说明它可以处理什么样的数据,是图片,还是视频,还是数字?
解决:将该模型改变为图灵模型来反映当今计算机的现实。
1.1.2 可编程数据处理器
图灵模型如下:
该模型添加一个额外的元素——程序
程序:用来告诉计算机对数据处理的指令集合
在这个模型里,输出数据受输入数据和程序两方面的影响
有三种情况:
1.相同的程序,不同的输入数据
2. 相同的输入数据,不同的程序
3. 相同的输入数据,相同的程序
当程序在输入相同的数据运行时,理论结果是有相同的输出。
1.1.3 通用图灵机
书籍原话,自行理解
1.2 冯.诺依曼模型
冯.诺依曼指出,鉴于程序和数据在逻辑上是相同的(都是01串),因此程序也能存储在计算机的存储器中。
1.2.1 4个子系统
基于冯诺依曼模型建造的计算机分为4个子系统:存储器,算术逻辑单元,控制单元和输入/输出单元
存储器:计算机处理过程中存储数据和程序的区域
算术逻辑单元(ALU):用来进行计算和逻辑运算的地方。
控制单元:对存储器,算术逻辑单元,输入/输出等子系统进行控制操作的单元
输入/输出:输入子系统负责从计算机外部接收输入数据和程序(如:键盘,鼠标);输出子系统负责将计算机的处理结果输出到计算机外部(如:显示屏,打印机等)。输入/输出子系统定义相当广泛,它们还包括辅助存储设备(如:磁盘,磁带等)。
当一个磁盘用于存储处理后的输出结果,我们可以认为它是输出设备,如果从磁盘读取数据,则认为该磁盘为输入设备。
1.2.2 存储程序概念
早期:只有数据才存储在存储器中
现代:程序和数据都存储在存储器中。这意味着数据和程序一个具有相同的格式,实际上它们都是以位模式(01序列)存储在内存中的。
1.2.3 指令的顺序执行
程序由一组数量有限的指令组成,控制单元从内存中提取一条指令,解释指令,接着执行指令。
指令就是一条接着一条地顺序执行。
1.3 计算机的组成部分
我们可以认为计算机由三大部分组成:计算机硬件,数据和计算机软件。
1.3.1 计算机硬件
后续讲解
1.3.2 数据
冯诺依曼模型将计算机定义为:数据处理机。它接收输入数据,处理并输出相应结果。
1.存储数据
冯诺依曼模型并没有定义数据如何存储在计算机中。如果一台计算机是电子设备,最好的数据存储方式应该是电子信号(以电子信号的消失和出现的方式来存储数据),这意味一台计算机可以以两种状态之一的形式来存储数据。
但是,日常使用的数据并不是以两种状态之一的形式存在,如我们数字系统中的使用的数字可以是0~9十种状态中的任何一个。但是你不能直接将这类信息存储到计算机内部,除非将这类信息变换为只使用两种状态的系统(0和1)。同理,其它类型的数据(如文本,图像,声音,视频),同样不能直接存储到计算机内,除非将它们转变成01序列。
2.组织数据
书籍原话,自行理解
1.3.3 计算机软件
图灵或冯诺依曼模型的主要特征是程序的概念:
-
程序必须存储在计算机的存储器中
-
指令的序列
这个模型要求程序必须是有序的指令集。每一条指令操作一个或者多个数据项。因此,一条指令可以改变它前面指令的作用。
为什么程序必须由不同的指令集组成?
答案是重用性,我们可以将指令理解为标准制式零件,我们可以用这些同一规格拼成各种各样不同的东西,这些组合成的东西都可以理解为程序。每个程序就是不同指令的不同组合。反之,如果每个程序都是相对独立的,好比不同规格的零件不能重用,那么编程会变成一件很困难的事情。
-
算法:简单理解为找到合适的指令来解决问题的方法
-
语言
机器语言——>汇编语言——>高级语言
-
软件工程
冯诺依曼模型中没有定义软件工程。
软件工程:结构化程序的设计和编写
-
操作系统:最初是为了程序访问计算机部件提供方便的一种管理程序,如今的操作系统完成的工作远不止这些。
1.4.历史
机械计算机器(1930年之前)——>电子计算机的诞生(1930~1950)——>计算机的诞生(1950年至今)
1.5 社会问题和道德问题
1.6 计算机科学作为一门学科
计算机科学划分成几个领域
-
系统领域:与硬件和软件构成直接有关的领域。如:计算机体系结构,计算机网络,安全问题,操作系统,算法,程序设计语言以及软件工程
-
应用领域:与计算机使用有关的领域。如:数据库和人工智能