【计算机科学导论】第一章 绪论

简介: 【计算机科学导论】第一章 绪论

前言

计算机科学是一个非常广泛的概念,也是一个非常庞大的体系,我们可以将其定义为“和计算机相关的一系列问题”。既然是和计算机相关的一系列问题,那么在探索这一系列问题之前,我们需要先了解什么是计算机。

既然要了解计算机,那么我们就要从计算机的概念开始逐步了解计算机的各个组成部分。

图灵机

图灵机是对计算机的首次描述。

图灵机(图灵模型)是由艾伦·麦席森·图灵(Alan Mathison Turing)在1936年首先提出的一个通用计算设备的设想。

图灵认为所有的计算都可以在一种特殊的机器上执行,这种特殊的机器就称之为图灵机

需要注意的是,图灵机并不是一个真实的机器,而是一个抽象概念,是对可以执行所有计算的通用计算设备的一个设想。

数据处理器

由于图灵机是用于执行计算的机器,要执行计算就一定需要原始的输入数据,执行计算的同时必然会产生结果(输出数据),计算的执行过程,我们就可以认为是对原始输入数据的处理过程,因此,我们可以将图灵机看作成一种处理数据的机器,即数据处理器。

可编程数据处理器

机器执行计算如何处理数据肯定需要我们进行指定,那么我们可以通过何种方式告诉机器每一步如何处理数据,答案就是指令,我们可以通过一系列指令的集合告诉机器如何处理数据,指令组成的集合称之为程序,可以通过程序控制机器处理数据过程的机器称为可编程数据处理器。

对于用于控制数据处理器的程序,应当要能够保证结果的正确性:

  • 相同的程序,相同的输入数据,应当有相同的输出数据;
  • 相同的程序,不同的输入数据,应当有相应于当前输入的正确输出数据;
  • 不同的程序,相同的输入数据,应当有符合当前程序的正确输出数据。

通用图灵机

对于可以执行任何计算的图灵机,称之为通用图灵机,即可以适用于不同场合的不同计算,只要提供了合适的程序,该机器就可以执行任何运算。

通用图灵机是对现代计算机的首次描述。现代计算机和通用图灵机一样,我们只需要提供输入数据和用于描述如何进行运算的程序,就可以执行符合相应场合下的相应计算,产生相应的输出数据。

计算机是可编程的通用数据处理器

冯·诺依曼计算机

1946年2月14日,世界上第一台通用电子计算机埃尼阿克(ENIAC,Electronic Numerical Integrator And Computer 电子数字积分计算机)诞生。(ENIAC是世界上第一台通用电子计算机,但不是世界上第一台计算机)

在基于冯·诺依曼体系的计算机诞生之前,计算机是基于通用图灵机模型建造的,在计算机的存储器中存储的只有数据,程序并没有存储在存储器中。

1946年,冯·诺依曼提出存储程序原理,又称冯·诺依曼原理,由于程序和数据在逻辑上是相同的(假设在机器内部使用电压的不同表示不同的信息,那么对于机器来说不论是程序还是数据都只是电压),在计算机内部都可以采用二进制进行表示(只由0和1组成的数字串进行表示,由有无电压状态组成的连续状态变化),因此程序和数据一样也能够存储在计算机的存储器中

基于冯·诺依曼原理(存储程序原理)建造的计算机,也称为冯·诺依曼计算机

冯·诺依曼计算机的四个子系统

冯·诺依曼计算机分为四个子系统:

  • 存储器
  • 算术逻辑单元
  • 控制单元
  • 输入/输出子系统

1.存储器

存储器是用来存储数据和程序的区域。

2.算术逻辑单元

算术逻辑单元是用来进行算术运算和逻辑运算的地方。

3.控制单元

控制单元是对存储器、算术逻辑单元、输入/输出等子系统进行控制的单元。

4.输入/输出子系统

输入子系统负责从计算机外部接收输入的数据和程序,输出子系统负责将计算机的处理结果输出到计算机外部。

存储程序的概念

存储程序,就是程序和数据一样存储在计算机的存储器中,由于程序和数据都存储在存储器中,所以程序和数据需要采用相同的格式进行表示,在计算机中,程序和数据都采用二进制(只由0和1组成的数字串)进行存储。

指令的顺序执行

在冯·诺依曼计算机中,虽然程序和数据一样存储在存储器中,但程序一样是由指令组成的集合构成,只是表示的形式有所不同。那么程序存储在存储器中是如何执行的?在冯·诺依曼计算机中,程序的执行是控制单元按照顺序从存储器中一条接着一条取出执行,即指令一条接着一条顺序执行。

计算机的组成部分

对于计算机(这里的”计算机“是指包含计算机机器、程序和数据在内的计算机),我们总体上可以认为由三大部分组成:

  • 计算机硬件
  • 计算机软件
  • 数据

1.计算机硬件

组成我们电脑的CPU、显卡、内存条、磁盘等,这些都属于计算机硬件,就是我们实实在在可以摸得到看得见的东西。

2.计算机软件

计算机软件就是程序,由若干个指令组成的集合构成的程序,存储在计算机的存储器中,如:QQ、浏览器、操作系统等。

3.数据

数据就是要计算机进行处理的数据,如,我们需要计算机播放一段视频或者展示一个图片,输入数据就是存储在计算机存储器中的视频或图片,输出数据就是经过播放器软件(处理输入数据的程序)处理输入数据后展示给我们的图像。

计算机的历史

略…

相关文章
|
设计模式 前端开发 Linux
第一章-导论
第一章-导论
35 0
|
算法 测试技术 开发工具
[软件工程导论(第六版)]第1章 软件工程学概述(复习笔记)
[软件工程导论(第六版)]第1章 软件工程学概述(复习笔记)
|
存储 机器学习/深度学习 算法
数据结构与算法概论
数据结构与算法概论
67 0
|
算法 测试技术 数据库
[软件工程导论(第六版)]第7章 实现(复习笔记)
[软件工程导论(第六版)]第7章 实现(复习笔记)
|
自然语言处理 算法 程序员
谈一谈|数据结构与算法之绪论
谈一谈|数据结构与算法之绪论
64 0
【计算机科学速成课】笔记总结
第 1 集:计算机早期历史 提到的设备:算盘 → 步进计算器 → 差分机 → 分析机 → 打孔卡片制表机 提到的人名:Charles Babbage, Ada Lovelace
126 0
2018《软件工程导论》知识点复习【第一章】
2018《软件工程导论》知识点复习【第一章】
81 0
2018《软件工程导论》知识点复习【第一章】
2018《软件工程导论》知识点复习【第二章】
2018《软件工程导论》知识点复习【第二章】
86 0
2018《软件工程导论》知识点复习【第二章】
2018《软件工程导论》知识点复习【第三章】
2018《软件工程导论》知识点复习【第三章】
70 0
2018《软件工程导论》知识点复习【第三章】
|
机器学习/深度学习 数据挖掘
周志华第一章,第二章学习总结
周志华第一章,第二章学习总结
周志华第一章,第二章学习总结