计算机科学速成课编程语言发展史 (计算机编程的发展史)

视频中的设备:继电器 -> 真空管 -> 晶体管

20 世纪的发展要求更强的计算能力,房间大小的计算机发展到柜子大小。

哈佛 mark1 号, IBM 1944 年做的

继电器,机械继电器一秒最多 50 次开关

继电器出 bug

1904 年,热电子管出现,第一个真空管,改进后变成和继电器一样的功能

巨人 1 号 计算机在英国 布莱切利园 首次大规模使用真空管,但是编程麻烦,还需要配置

1946 年,宾夕法尼亚大学的 ENIAC 是一个通用可编程计算机

1947 年,贝尔实验室做出了晶体管,晶体管有诸多好处, IBM 很快全面转向晶体管

硅谷典故:很多晶体管和半导体的开发都是在这里的做的,而生产半导体最常见的材料是硅

肖克利半导体 -> 仙童半导体 -> 英特尔

上期视频我与大家分享了计算机早期发展历史,而到了 上个世纪中后期,发生了一 系列 重大的变化,那就是 计算设备 早期的打孔制表机 发展成为 编程的 机械继电器,后来机械 结构 的继电器 转变为纯电路结构 的真空管 ,之后 又转换成为了晶体管

这些计算设备的 内部计数方式 也有了改变, 制表机的 10 进制 运算 转变为 真空管的 2 进制的 运算

大环境 -20 世纪的发展要求更强的计算能力

20世纪初,当时早期计算设备都针对特定用途,比如制表机大大推进了政府和企业, 这些机器 帮助 甚至代替了人工。当时的工业时代,人类社会的规模,在以前所 未有的速度增长,20世纪上半叶,世界 人口几乎翻倍,一战 参与 7千万人,二战 1 亿多人,全球贸易和运输更加频繁,工程和科学的复杂度也达到新的高度,人们甚至开始考虑登 月行动 ,工程和科学的复杂度增高 导致数据量暴增,人们需要更多自动化,更强的计算能力 ,柜子大小的打卡制表机,变成房间大小的可编程计算机

这些机器为未来创新打下基础 维护费用高,而且容易出错。

第一台全自动可编程计算机 哈佛马克一号

世界上第一台全自动可编程计算机 哈佛马克一号 IBM 1944 年完成建造,给二战同盟国建造的,哈佛马克一号,是最大机电计算机之一,霍珀为 (Harvard Mark-Ⅰ) 编写程序,它有 76 5 千个组件, 300 万个连接点和 500 英里长的导线,为了保持内部机械装置同步,它有一个 50 英尺的传动轴,由一个 5 马力的电机驱动

这台机器最早的用途之一,是给 曼哈顿计划 (利用核裂变反应来研制原*弹子**的计划),

这台机器 核心,就 机械继电器

机械继电器计算机 哈佛马克一号 :与之前的制表机的区别是,其内部计数方式由 10 进制转变为 2 进制的过程。

制表机的 10 进制计算 转变 2 进制运算

在了解 什么是二进制之前,想一下十进制

我们一般人有十个手指头,十个脚趾 头,我们可以从0数到 9 ,记账用的是十进制,我们知道个十百千万这些数量级

但是生活中也并不全都是十进制的计数方式 比如时间: 60秒是一分钟, 60 分钟是一个小时, 24 小时是一 天,一年一般是365天。我们生活的世界很多刻度与进制都是人为规定的。

二进制也是人为规定的。如果用十进制来表达数字,那么每一个位上只能出现0 9 10 个数字,二进制也同样的,如果用二进制来表达数字,那么每一个位上只能出现 0 或者 1 这两个数,这和十进制没什么不同, 10 进制不同的 某个位上能用的数字少一些而已 10 进制是 0-9 ,二进制是 0-1 而且二进制运算 有专门数学分支 “布尔代数”来帮助运算。

计算机中也有两种状态, ——电路 有电连通 断开 这两种状态。简单来说:就是电路中有无电流通过,如果有电流通过,就可以代表二进制中的 1 ,没有电流通过就可以代表二进制中的 0

在控制二进制的位数,就可以进行数据的运算。 这种二进制 计算方式特别适合 计算机。 (具体二进制会在以后的课程详细解答)

机械继电器原理:

计算机科学速成课编程语言发展史,80年代学习计算机编程

继电器:是用 控制机械的开关,继电器里,有根 控制线路 ,控制电路是开还是关

计算机科学速成课编程语言发展史,80年代学习计算机编程

控制线路 连着一个线圈,当电流流过线圈,线圈产生电磁场,吸引金属臂,从而闭合电路。

计算机科学速成课编程语言发展史,80年代学习计算机编程

你可以把继电器,想象成水龙头,把控制线路,想成水龙头把手,当打开水龙头的时候,水会从水龙头流出来,关闭水龙头,水就没有了。

计算机科学速成课编程语言发展史,80年代学习计算机编程

计算机科学速成课编程语言发展史,80年代学习计算机编程

继电器是一样的,只不过控制的是电,而不是水。

这个控制器电路可以连接到其他电路,比如马达,让马达计数齿轮+1

机械 制表机一样。

继电器做计算机的弊端

第一:运算速度慢

内部的机械臂是机械的,因此无法快速开关。

1940年,一个好的继电器 1 秒能翻转 50 次,看起来好像很快,但还不够快,不足以解决复杂的大问题。

哈佛马克1号的性能

哈佛马克1号, 1 秒能做 3 次加法或减法运算, 乘法要花 6 秒,除法要花费 15 秒,更复杂的操作,比如三角函数,可能要花一分钟以上

计算机科学速成课编程语言发展史,80年代学习计算机编程

第二:继电器齿轮磨损

任何会动的机械都会随着时间磨损,有些部件会完全损坏,有些则是变黏,变慢,变的不可靠。

并且随着继电器数量增加,故障概率也会增加,哈佛马克 1 号大约有 3500 个继电器,假设继电器使用寿命是 10 年,也意味着平均每天都得换一个故障的继电器,这是一个很严重的问题,因为有些重要的运算要运行好几天,而且还有更多其他问题要考虑,

计算机专业术语 bug

这些巨大,黑色,温暖的机器,会吸引昆虫, 1947 9 月,哈佛马克 2 型操作员,从故障继电器中,拔出一只死虫

计算机科学速成课编程语言发展史,80年代学习计算机编程

计算机科学速成课编程语言发展史,80年代学习计算机编程

计算机软件工程第一夫人,Cobol语言之母,耶 ...

简介:格蕾丝 · 霍珀( Grace Hopper

格蕾丝 · 霍珀( Grace Hopper 她说: “从那时起,每当电脑出现了问题,我们就说它出了 bug (虫子)” 这就是计算机专业术语 Bug 的来源,清理 bug 时间很麻烦的事,因为计算机内部空间很小,需要小孩子进到计算机里面去清理 bug ,记忆当中比尔盖茨,小时候的零花钱多数都是清理 bug 赚来的,而且数量还不少,主要原因是他的母亲是 IBM 的高管。

计算机科学速成课编程语言发展史,80年代学习计算机编程

显然,如果想进一步提高计算能力,需要靠更快,更可靠的东西,来替代继电器,幸运的是,替代品已经存在了。

继电器的替代品 晶体管 “二极管”“三级管”

1904 年,英国物理学家“约翰·安布罗斯·弗莱明”开发了一种新的电子组件,叫 “热电子管” 把两个电极装在一个真空密封的玻璃灯泡里,这是世界上 第一个真空管 ,其中一个电极可以加热,从而发射电子,这叫 “热电子发射”另一个电极会吸引电子,形成“电龙头”的电流 ,但只有带正电才行,如果带负电荷或中性电荷,电子就没办法被吸引,越过真空区域,因此没有电流,电流只能单向流动的电子部件叫 “二极管”,但是我们需要的是,一个能开关电流的东西。

简单来说:就是电路中有无电流通过,如果有电流通过,那么电路中的灯泡就会亮起,这种状态就是 1 ,反之,如果电路中无电流通过,那么电路中的灯泡就不会亮起来,那么这就是 0 状态。

计算机科学速成课编程语言发展史,80年代学习计算机编程

计算机科学速成课编程语言发展史,80年代学习计算机编程

幸运的是,不久之后,在 1906 年,美国发明家“李·德福雷斯特”他在“弗莱明”设计的两个电极之间,加入了第三个“控制”电极,向“控制”电极施加正电负荷,它会允许电子流动,如果施加负电荷,它会阻止电子流动。

计算机科学速成课编程语言发展史,80年代学习计算机编程

计算机科学速成课编程语言发展史,80年代学习计算机编程

计算机科学速成课编程语言发展史,80年代学习计算机编程

因此通过控制线路,可以断开或闭合电路,和继电器的功能一样,但重要的是,真空管内没有会动的组件,没有了机械的磨损,更重要的是,每秒可以开闭数千次,因此这些 “三极真空管”成为了无线电,长途电话,以及其他电子设备的基础,持续了接近半个世纪

真空管不是完美的,它们有点脆弱, 像灯泡一样,而且电压不稳的时候,会烧掉,但比起机械继电器是一次巨大进步

起初,真空管非常昂贵,收音机一般只用一个,但是计算机可能需要上百,甚至上千个电气开关,

计算机科学速成课编程语言发展史,80年代学习计算机编程

到了 1940 年代,它的成本和可靠性得到了改进,可以用在计算机里。至少有钱人负担的起,比如政府。 这标志着计算机,从机电转向电子

计算机科学速成课编程语言发展史,80年代学习计算机编程

计算机科学速成课编程语言发展史,80年代学习计算机编程

第一个真空管计算机 “巨人 1 号”

第一个大规模使用真空 管的计算机是 “巨人 1 号” ,是由工程师 Tommy 汤米 Flowers ”设计,完工于 1943 12 月,巨人 1 号 在英国的“布莱切利园”,用于破解纳粹通信,无独有偶,阿兰·图灵他经常被称为“计算机科学之父”图灵也在“布莱切利园”做了台机电装置,叫“ Bombe ”这台机器的设计目的是“破解纳粹《英格码》通讯加密设备”!但是 Bombe 严格来说不算计算机,总之,巨人 1 号拥有 1600 个真空管,总共制造了 10 台巨人计算机,来帮助破解密码,巨人被认为是第一个可编程的电子计算机。

计算机科学速成课编程语言发展史,80年代学习计算机编程

编程的方法,是把几百根电线插入插板,有点像老电话交换机,这是为了让计算机执行正确操作。虽然 “可编程”,但还是要配置它,

宾夕法尼亚大学的 ENIAC 是一个通用可编程计算机

电子数值积分计算机 ENIAC (安妮亚克) 1946 年,在“宾夕法尼亚大学”完成建造 ,设计者是 john Mauchly (约翰 ·莫奇利) J.Presper Eckert (普斯珀 ·埃克特) ,这是世界上第一个真正的通用,可编程,电子计算机。 ENIAC (安妮亚克) 每秒可执行 5000 次十位数加减法,比之前的计算机快了很多倍,它运作了 10 年,根据估计,它完成的运算,比全人类加起来还要多,

因为真空管很多,所以故障很常见, ENIAC 运行半天左右就会出现一次故障,

1950 年,真空管计算机都达到了极限,美国空军的 AN/FSQ-7 计算机于 1955 年完成,是“ SAGE ”防空计算机系统的一部分,为了降低成本和大小,同时提高可靠性和速度,人们需要一种新的电子开关

晶体管诞生

1947 年,贝尔实验室科学家,发明了 晶体管 ,一个全新的计算机时代诞生了。晶体管的物理学相当复杂,牵扯到了量子力学 所以我们只说基础,晶体管,就像之前提过的 “继电器”或“真空管”

计算机科学速成课编程语言发展史,80年代学习计算机编程

计算机科学速成课编程语言发展史,80年代学习计算机编程

计算机科学速成课编程语言发展史,80年代学习计算机编程

计算机科学速成课编程语言发展史,80年代学习计算机编程

它是一个开关,可以 通过 控制线路来控制开或关,晶体管有两个电极, 电极之间有一种材料隔开他们 ,这种材料有时候导电,有时候不导电,

这就 叫半导体 ,控制线 连接到一个 “门”电极 ,通过改变 “门”的电荷,我们 可以控制半导体材料的导电性 来允许或者不允许导电 ,就像之前的水龙头一样。

贝尔实验室的第一个晶体管,就展示了巨大潜力。每秒可以开关 10000 次,而且比起玻璃制成,易碎的真空管,晶体管是固态的,晶体管可以远远小于继电器或真空管。

晶体管计算机

导致更小,更便宜的计算机,比如 1957 年发布的 IBM 608 ,第一个完全用晶体管,而且普通消费者也可以买的到的计算机。它有 3000 个晶体管,每秒执行 4500 次加法,每秒能执行 80 次左右的乘除法。 IBM 很快把所有产品都转向了晶体管,把晶体管计算机带入办公室,最终引入家庭。

计算机科学速成课编程语言发展史,80年代学习计算机编程

计算机科学速成课编程语言发展史,80年代学习计算机编程

计算机科学速成课编程语言发展史,80年代学习计算机编程

计算机科学速成课编程语言发展史,80年代学习计算机编程

计算机科学速成课编程语言发展史,80年代学习计算机编程

计算机科学速成课编程语言发展史,80年代学习计算机编程

如今,计算机里的晶体管小于 50 纳米,而一张纸厚度,大概 10 万纳米,晶体管不仅小,而且还超级快,每秒可以切换百万次,并且能工作几十年。

硅谷的典故

很多晶体管和半导体的开发在 “圣克拉拉谷”,这个地方在加州,位于“旧金山”和“圣荷西”之间,而生产半导体最常见的材料是“硅”,所以这个地方呗称为硅谷。

肖克利半导体->仙童半导体 -> 英特尔

William Shockley (威廉姆·肖克利) 物理学家。因对半导体的研究和发现了晶体管效应,与巴丁和布拉顿分享了1956年度的诺贝尔物理学奖。

William Shockley 都搬过去,创立了“肖克利半导体”里面的员工后来成立了“仙童半导体”,这里面的员工后来创立了英特尔,当今世界上最大的计算机芯片制造商。

在这期视频我分享了继电器计算机 “哈佛 mark1 ”, bug 和硅谷 这一专业计算机术语的由来,真空管的由来和晶体管计算机的由来。在下期,我会分享二进制与布尔代数,以及布尔代数的相关逻辑有哪些,二进制的计算机如何表示文字,字符集和编码的发展历史