大一软件工程新生,曾经学过c语言,想要了解c语言的处理原理,减少出错。 本博客内容和图片来自于 佛罗赞的 计算机科学导论一书。

1.1 图灵模型

是图灵所设想的一种机器,可以完成某些计算,但图灵着重于对理论的描述,而非是建造一台真正的机器,但该设想是计算机的雏形。

1.1.1 数据处理器

计算机可以被当作是一个数据处理器,即用户输入数据,计算机经过数据处理,输出结果的这样的机器。                                                                        

但这样的定义太过宽泛,在这种定义下,计算机也可以是计算器(即用户输入数字,计算器进行加减乘除后将结果输出) 。

并且,该模型还没有确定机器可以处理的数据类型及其处理方式,即数据处理相对死板,无法完成多任务的操作,只能完成某一种处理

1.1.2 可编程数据处理器

为了解决上一种模型的缺陷,可编程式的数据处理器可以对数据的处理过程进行编辑,这种模型显然更加合理,更接近于图灵模型(过程可控,多变性强)。

该模型中的输出数据依赖于两个方面的结合作用:输入数据以及程序(程序和输入数据的改变都可能对输出数据造成影响)。通过对程序的改变,可以改变处理方式。

1.1.3  通用图灵机

通用图灵机 是对现代计算机的首次描述,只要提供里合适的代码,该机器就可以做任何运算。我们要做的是为计算机提供数据和程序。

1.2.1 冯·诺伊曼模型

冯·诺伊曼模型有4个主要的子系统:储存器,算数逻辑单元,控制单元和输入/输出单元

1.储存器:顾名思义,用来储存。在该结构中用来存储数据和程序。

2.算数逻辑单元:可以对数据进行算数计算和逻辑运算(与 或 非)。

3.控制单元:对其他三个处理单元进行控制。

4.输入/输出单元:输入单元负责从计算机外部接收数据和代码,而输出单元则负责将计算机处理后得到的数据输出到计算机外部。但输入和输出的定义相对宽泛,对硬盘的读与写也叫做输入和输出(这时,硬盘可以叫做是输入和输出设备)。

1.1.2 储存的程序概念

对于冯·诺伊曼模型,要求数据和代码都存放在内存中(早期的计算机内存中只会存放数据,而现在的程序概念需要通过改变不同的开关和不同的接线来完成)。

数据和程序即然要存储在同养的寄存器中,那么他们必须有相同的格式(像早期电脑,程序的概念要通过认为操作来实现,这就无法和数据一起储存)。现代格式即:位模式(二进制,由0和1组成)。

1.1.3 指令的顺序执行

冯·诺伊曼结构中,程序顺序由人为编写,即代码顺序。控制单元从内存中取出一条指令后,解析指令并找到对应的数据后,执行指令(即程序是顺序执行的)。但有些指令可能要求控制单元跳转到前面或后面的的指令,但这并不违背程序的顺序执行。

1.3 计算机的组成

计算机由计算机硬件,数据,计算机软件组成。

1.3.1 计算机硬件

计算机的硬件有多种,主要的即为冯·诺伊曼模型的4个部分(硬件可以有多个,例如输入输出部分就可以有硬盘,屏幕,外接打印机等)。

1.3.2 数据

1.储存数据

冯·诺伊曼模型将计算机定义为是一台数据处理器,而对于电子设备来讲,储存数据最好的方法就是电子信号(0和1)。对于复杂形势如文字和图像的储存,则需要将0和1变成一种有效的形式。这会在后问中讲到

2.组织数据

在数据存储之前,会被组织为不同的实体以及格式,从而有序的组织数据。数据被组织为很多小单元,小单元会再组成大的单元(我猜想应该是字节)。

1.3.3 计算机软件(可以理解为图灵表述的程序的概念)

冯·诺伊曼模型在程序上的体现

1.必须要储存程序

在计算机的内存中,数据和程序都要被存放。

2.指令的序列

程序是有序的指令集,计算机通过执行指令来完成该程序。

3.算法

按步骤解决问题的方法,称做算法。

4.语言

早期的语言要求程序员使用机器语言(靠写指令来解决问题),但这种方法太过麻烦,于是后来出现了一种使用自然语言(英语)来代替二进制的语言,例如c语言等语言。

5.软件工程

是指结构化程序的设计与编写

6.操作系统

对于一些几乎所有程序都要用到的指令,可以只用编写一次就可以,效率会大大提高。于是,就有了操作系统的诞生。

1.4 历史

1.4.1 机械计算机

·17世纪 布莱斯·帕斯卡 发明了可以进行加减的机器。在20世纪时,有了计算机语言的出现,Pascal语言就是为了祭奠他

·17世纪后期 戈特弗里德·莱布尼茨 发明了可以进行加减乘除的机器,叫做莱布尼茨之轮

·第一台有编程理念的机器是 提花织机 由约瑟夫-玛丽·雅卡尔19世纪制造的,可以利用穿孔卡来控制线的变化

·1823年,查尔布·巴比奇 发明了一种与冯·诺伊曼模型贼像的一种机器,可以进行复杂的数学运算,他的4个引擎为:制造场(相当于是算数逻辑单元),储存单元(相当于储存器),操作者(控制单元),输出单元(输入输出单元)。

·1890年,赫尔曼·何勒里斯 制造了一种可以编程的机器,同样使用穿孔卡。

1.4.2 电子计算机

1.早期计算机

在这时,计算的数据和储存方式可以有电子管来完成,相比机器计算机有更强大的灵活性,更加具有通用性。但该时期的计算机没有把程序放在储存器中,编程都在外部进行(利用配线和开关)。

2.基于冯·诺伊曼模型的计算机

使用该模型,程序员只需要改变程序和数据就可以进行不同的计算,而不需要改变复杂的配线。第一台在宾夕法尼亚大学建成,叫做EDVAC。同时EDSAC机器在剑桥大学被建造,同样是基于该模型。

1.4.3 现代计算机的诞生

1.第一代

以真空管来组成电脑逻辑单元,体积庞大。

2.第二代

晶体管代替真空管,体积大大减小。同时,编程语言的使用是的编程过程与计算机处理分离开来,减少了程序猿的压力。

3.第三代

有了集成电路,也有了封装好的程序(最早的软件)。软件行业从此诞生。

4.第四代

出现了微型计算机,可以将计算机子系统做在单块电路板上,同时这一时代也有了计算机网络。

5.第五代

掌上电脑和台式机器的诞生以及多媒体等的应用。

计算机科学导论-绪论相关推荐

  1. 计算机科学导论(原书第三版)框架总结

    计算机科学导论 文章目录 计算机科学导论 绪论 数字系统 数据存储 数据运算 计算机组成 计算机网络和因特网 操作系统 算法 程序设计语言 软件工程 数据结构 抽象数据类型 文件结构 数据库 数据压缩 ...

  2. 计算机科学导论(1):绪论

    原文链接: 计算机科学导论(1):绪论 | 远行的舟 自人类历史上第一台通用电子计算机 ENIAC(Electronic Numerical Integrator and Caculator,电子数字 ...

  3. 计算机科学文章,计算机科学导论论文范文

    论文关键字: 计算科学 计算学科 计算机语言 计算机软件 网络和病毒 论文摘要:计算科学主要讲述了一种科学的思想方法,计算科学的基本概念.基本知识它的发展主线.学科分支.还有计算科学的特点.发展规律和 ...

  4. 计算机科学导论【第四版】读书笔记 (一)

    计算机科学导论[第四版]读书笔记 (一) 绪论 基于图灵模型的计算机 图灵模型假设各种各样的运算都能够通过一种特殊的机器来完成,图灵机的模型是基于各种运算过程的.图灵模型把运算的过程从计算机器中分离开 ...

  5. 计算机科学导论+刘艺+pdf,计算机科学导论(机械工业出版社)刘艺 瞿高峰 习题答案.doc...

    计算机科学导论(机械工业出版社)刘艺 瞿高峰 习题答案.doc 以下答案为查阅多方资料做的,仅供参考. 第一章 绪论 1. 和计算机相关的问题. 2. 冯.诺依曼模型. 3. 第一点:尽管这个模型能够 ...

  6. 读书笔记——计算机科学导论

    计算机科学导论-读书笔记 第一章 绪论 一.学习目标 1.定义计算机的图灵模型, 2.定义计算机的冯诺依曼模型 3.描述计算机的三大部分:硬件.数据和软件 4.列举与计算机硬件.软件.数据相关的话题 ...

  7. 《计算机科学导论》一1.1 图灵模型

    本节书摘来华章计算机<计算机科学导论>一书中的第1章 ,第1.1节,[美]贝赫鲁兹A. 佛罗赞(Behrouz A. Forouzan)著 刘艺刘哲雨等译, 更多章节内容可以访问云栖社区& ...

  8. 《计算机科学导论》一2.3 非位置化数字系统

    本节书摘来华章计算机<计算机科学导论>一书中的第2章 ,第2.3节,[美]贝赫鲁兹A. 佛罗赞(Behrouz A. Forouzan)著 刘艺刘哲雨等译, 更多章节内容可以访问云栖社区& ...

  9. 计算机科学导论 第4版,计算机科学导论.第4版

    摘要: <计算机科学导论(第4版)/高等院校计算机教育系列教材>从理论讲解和应用推广的角度出发,严格根据教育部高教司主持评审的<中国计算机科学与技术学科教程2002>进行编写, ...

最新文章

  1. 错把一加当苹果,美国海关侵权大案糗大了:被网友无情嘲讽
  2. regasm注册com组件
  3. Py之distance:distance的简介、安装、使用方法之详细攻略
  4. 动态规划DP题单 AcWing算法基础课 (详解)
  5. python3字符串拼接_Python3基础 str + 字符串变量拼接
  6. 软件工程 案例分析作业
  7. 判断按键值_Pygame(九)按键事件(2)
  8. Java数据库接口JDBC入门基础讲座_JDBC基础教程之连接
  9. strategy dynamic参数的使用
  10. AIX双机调整DB2配置
  11. 拓端tecdat|windows中用命令行执行R语言命令
  12. MTK TP驱动代码调用流程
  13. java调用webService方法
  14. 疼痛共情ERP成分解析
  15. python表示差值_Python算法之差值查找-Testfan打卡学测开0116
  16. 电影《后悔无期》的经典段子
  17. Go1.19 那些事:国产芯片、内存模型等新特性,你知道多少?
  18. html制作透明正方形,用css3简单的制作3d半透明立方体图片详解
  19. [一起看海吧]2021.5.1秦皇岛北戴河之旅游记
  20. java 线程锁Lock

热门文章

  1. 【海康威视】相关名词术语产品注解
  2. 【仿淘宝首页】前端网页模板,大学生前端作业分享,html5+css电商网站模板,包含js动效
  3. macOS硬盘如何格式转换?用Tuxera NTFS就够了!
  4. LeetCode 557 反转字符串中的单词 III
  5. 计算机知识竞赛赛制,知识竞赛活动规则
  6. java 重启路由器
  7. 【论文笔记】MultiPath: Multiple Probabilistic Anchor TrajectoryHypotheses for Behavior Prediction
  8. 从指数构建原理看待A股的三千点魔咒
  9. java写 狐狸找兔子_狐狸找兔 算法分析
  10. linux安装ie浏览器吗,Ubuntu上安装IE浏览器的方法有哪些 安装方法分享