- 吴军老师在《计算之魂》中把计算机从业人员分为七级,其中从高到低第五级可以独立解决问题,完成工程工作,决定一个程序员等级的一个重要因素就是他对于计算机科学的认识,以及3对于就计算机所能解决的问题的边界的判定
(一)计算机的起源
-
最早的计算工具是算盘
- 古希腊和中国的算盘,本质上是一种辅助运算工具,我们只需要根据珠算口诀来进行算珠的操作,这里的珠算口诀就是最早的指令控制
- 算盘即是并非运算能力,而是在人的操作下根据指令控制进行的机械运动。
-
计算机的三大组成:指令序列,存储单元,计算单元
-
巴贝奇和阿卡是最早使用使用程序控制机械运动的人
布尔的贡献在于通过二进制将算术和简单的数理逻辑统一起来,并提供工具就,布尔代数
楚泽通过实践证明布尔代数可以实现任何十进制的运算,并实现复杂的控制逻辑
香农则从理论上指出任何逻辑控制和计算都和开关电路等价,奠定了数字电路的基础
(二)计算机所能解决的问题
- 数学问题的界定
完备性,一致性,可判定性
- 计算机问题的两个特点
- 模块性:通过简答的模块搭建出复杂的结构
- 等价性:在复杂的计算都可以等价为加减乘除,进而等价为开关电路的逻辑
(三)图灵机
- 机械计算机:计算的本质的机械运动
- 本质是数学模型
- 图灵机的概念
1、一条无限长的纸带 TAPE。纸带被划分为一个接一个的小格子,每个格子上包含一个来自有限字母表的符号,字母表中有一个特殊的符号 表示空白。纸带上的格子从左到右依此被编号为 0,1,2,… ,纸带的右端可以无限伸展。
2、一个读写头 HEAD。该读写头可以在纸带上左右移动,它能读出当前所指的格子上的符号,并能改变当前格子上的符号。
3、一套控制规则 TABLE。它根据当前机器所处的状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作,并改变状态寄存器的值,令机器进入一个新的状态。
4、一个状态寄存器。它用来保存图灵机当前所处的状态。图灵机的所有可能状态的数目是有限的,并且有一个特殊的状态,称为停机状态。
- 超前的思维:在没有计算机的时代,就已经划定的可计算问题的边界