编程考古-计算机发展(上)

计算机/器现在是我们日常生活中的重要工具,它的发展历程见证了人类数学计算能力的不断提升。

什么是计算

计算的本质在于基于规则对符号串进行变换。简言之,从一个初始的符号串(输入)出发,依据既定的法则逐步改变这个符号串(变换),直至在有限步骤内获得一个新的符号串(输出),这一过程即是计算。

计算的常见形式通常涉及数学运算,如1+2=31+2=3,但实际上这只是根据数学法则对1+21+2 进行变换得到33 的过程。类似地,将一段中文文章在保持语义不变的前提下翻译成英文也是一种计算。

从古至今,人类的计算方式经历了漫长的发展历程:

(1)手工计算

在旧石器时代,人们通过在石头上刻画特定图案来记录计算;春秋战国时期的筹算是利用竹棍的不同排列进行计算;东汉时期的珠算是用算珠计算;随着纸张和书写工具的出现,人们开始用笔在纸上书写符号进行计算。这些都是通过手工操作符号来实施变换的例子。

图片

算盘

在中国古代,随着社会规模的扩大,传统的结绳刻字方法已不足以应对日益增长的数据处理需求,因此出现了算筹计数法。公元六世纪,算盘取代了算筹,成为首个完全采用十进制计算的工具,标志着计算工具的重大飞跃。珠算盘轻巧便捷,与日常生活紧密相连,自汉代起源,至元代趋于成熟。在中国古代,随着社会规模的扩大,传统的结绳刻字方法已不足以应对日益增长的数据处理需求,因此出现了算筹计数法。公元六世纪,算盘取代了算筹,成为首个完全采用十进制计算的工具,标志着计算工具的重大飞跃。珠算盘轻巧便捷,与日常生活紧密相连,自汉代起源,至元代趋于成熟。

(2)机器计算

手工计算速度缓慢,为提高效率,人类发明了多种计算工具。

1620 年,埃德蒙·甘特发明了带有对数刻度的计算设备;

图片

上海计算尺厂制造的1200型矢量自然对数计算尺

1630 年,威廉·奥特雷德发明了圆形计算尺;

图片

1642 年,布莱士·帕斯卡创造了世界上首个加法器;

图片

帕斯卡设计的计算器

1673 年,戈特弗里德·莱布尼茨改进了帕斯卡的设计,制作出能进行加、减、乘、除运算的计算器;

1812 年,查尔斯·巴贝奇设计了差分机,并于 1834 年设计了分析机。

图片

差分机的设计原理:

所谓“差分”的含义,就是把函数表的复杂算式转化为差分运算,用简单的加法代替平方运算。”差分机“的设计闪烁出了程序控制的灵光,它能够按照设计者的旨意,自动处理不同函数的计算过程。

差分机利用齿轮和摆杆等结构实现了多位数的加法和减法运算。尽管差分机没有商业化生产,但它为后来的计算器技术奠定了基础,并引领了机械计算器的发展方向。

随着社会的蓬勃发展,人类对计算速度和精度的追求从未停歇。随着16世纪以来天文学、航海学和测量学等领域的发展,人们面临大量复杂的计算需求,尤其是乘除运算。为了应对这些挑战,人类不断创新计算工具,极大地提升了计算能力和精度,推动了社会的进步与发展。

电子管计算机时代的开启

计算机发展的早期阶段主要依赖于机械方式。尽管一些早期设计引入了电学元素,但总体而言,依然是以机械驱动为主,尚未涉足逻辑运算领域。随着电子技术的突飞猛进,计算机开始从机械时代过渡到电子时代,电子元件和电路的进步使得计算机能够进行逻辑运算,自动化处理数据和计算,标志着计算机从机械驱动向电子化和逻辑化转型的开始。

1906年,美国发明家李·德·福雷斯特发明了真空三极管,为电子工业革命揭开了序幕。


 

图片

真空管


IBM

1924年,托马斯·沃森将CTR更名为IBM(国际商业机器公司),IBM自此成为计算机行业的领军者。

1931年,IBM推出了IBM 601穿孔卡片计算机,它能在一秒钟内完成乘法计算,极大地提高了大宗数据的计算速度。显著提升了大批量数据的计算速度,巩固了IBM在市场中的地位。

图片

IBM 601 乘法打孔机是一种单位记录机,可以从打孔卡中读取两个数字,并在同一张卡的空白字段中打孔。这些因子的长度最多可以为 8 位十进制数字。601 于 1931 年推出,是第一台可以进行乘法运算的 IBM 机器。

图片

20 世纪中叶的 12 行/80 列 IBM 穿孔卡片

Atanasoff-Berry Computer

1936年,艾伦·图灵提出了图灵机的数学模型,奠定了现代计算机科学的基础。同年,约翰·阿塔那索夫与其学生贝瑞发明了世界上第一台电子计算机——ABC(Atanasoff-Berry Computer)。其中,A、B分别取俩人姓氏的第一个字母,C即“Computer”的首字母,ABC计算机用电容作存储器,用穿孔卡片作辅助存储器,时钟频率是60HZ,完成一次加法运算用时一秒,是世界上第一台电子计算机。尽管不可编程,仅仅设计用于求解线性方程组,并在1942年成功进行了测试。但为后续计算机的发展提供了重要参考。

图片

图片

ZX系列计算机

1938年,康拉德·祖斯(Konrad Zuse)及其团队完成了Z1计算机,这是一台可编程的二进制计算机,可编程性有限,可以从穿孔的赛璐珞胶片上读取指令。“Z1” 是世界上第一台使用布尔逻辑和二进制浮点数的可自由编程的计算机,然而,它在操作上并不可靠。Z1 是一台重约 1 吨的机器,由大约 20,000 个零件组成。

图片

图片

Z1 内部视图

图片

Zuse 1936 年 5 月的专利图表,该专利使用扁平滑杆机构的二进制开关元件。Z1 就是基于这些元素。

Z1 几乎包含现代计算机的所有部分,即控制单元、内存、微序列、浮点逻辑和输入输出设备。Z1 可通过穿孔胶带和穿孔胶带阅读器自由编程。穿孔磁带阅读器、用于监控整台机器和指令执行的控制单元、算术单元以及输入和输出设备之间有明显的分离。输入磁带单元读取 35 毫米胶片中的穿孔。

图片

五孔和八孔宽的冲孔纸胶带

图片

折叠纸带上的诊断微型计算机软件 (1975)

1941年,祖斯研制成功了Z3计算机,这是世界上第一台可工作的可编程全自动数字计算机。由 2,600 个继电器构建而成,实现了 22 位字长,时钟频率约为 5–10 Hz。程序代码存储在穿孔胶片上。

图片

Zuse Z3 复制品在慕尼黑德意志博物馆展出

图片

Z3、Z5 和 Z11 中包含的电磁存储器(继电器)

Z3 在 1998 年被证明原则上是图灵完备的。但是,由于缺乏条件分支,Z3 仅通过推测性计算计算的所有可能结果来满足此定义。

图片

Z4 在慕尼黑德意志博物馆展出


基于 Henschel & Son 在 1942 年下的订单。尽管 Z4 仅在柏林部分组装,并于 1945 年 4 月在哥廷根最终完成,但未能在纳粹德国战败前交付。Z4 是祖斯设计的结晶之作,采用了机械存储器与机电逻辑相结合的技术。当 1950 年交付给苏黎世联邦理工学院时Z4机器增加了一个有条件的分支设施,并且可以在梅赛德斯打字机上打印。有两个程序磁带,第二个可以用来保存子程序。(最初计划有 6 个)。


从 1950 年至 1955 年,Z4 在苏黎世联邦理工学院使用,并启发了该校工程师 Ambros Speiser 领导下创建的第一台瑞士计算机 ERMETH。


ENIAC

1946年,ENIAC埃尼阿克(Electronic Numerical Integrator And Calculator,电子数字积分计算器)问世,这是世界上第一台电子数字计算机,在美国宾夕法尼亚大学现世并正式投入运行,参与研制工作的是宾夕法尼亚大学莫尔电机工程学院的莫奇利(John W.Mauchly)和埃克特(J.Presper Eckert)为首的研制小组,耗资 487,000 美元(相当于 2023 年的 6,900,000 美元),被媒体称为“巨型大脑”。

ENIAC 于 1946 年 2 月 15 日在宾夕法尼亚大学正式落成,虽然构造庞大且操作繁琐,但代表了当时计算技术的巅峰。

ENIAC重30吨,使用了约18800个真空电子管,1500个继电器,功率达174千瓦,占地约140平方米,使用十进制运算,每秒能运算5000次加法,比当时最快的计算机快1000倍,是手工计算的20万倍,但是它不像现在这样的电脑有输入控制设备,只能通过人工来扳动庞大面板上的各种开关和插拔电缆来进行数据信息输入,虽然现在看来它真的很落后,但是在当时它代表着人类计算技术的最高成就,它奠定了电子计算机的发展基础,开辟了信息时代。

图片

宾夕法尼亚大学工程与应用科学学院的 4 个 ENIAC 面板和 3 个功能桌中的 1 个

图片

Glenn A. Beck(后)和 Betty Snyder(前)在 BRL 328 号楼对 ENIAC 进行编程。(美国陆军照片,约 1947-1955 年)

图片

Irwin Goldstein 下士(前)在摩尔电气工程学院的 ENIAC 的一张功能桌上设置开关。(美国陆军照片)

图片

ENIAC 截面背面的细节,显示真空管

图片

来自四台早期计算机的零件,1962 年。从左到右:ENIAC 板、EDVAC 板、ORDVAC 板和 BRLESC-I 板,显示出小型化趋势。

ENIAC主要部件是 40 个面板和 3 个便携式功能台(名为 A、B 和 C)。面板的布局为(顺时针方向,从左侧墙壁开始):

Left wall 左墙

  • Initiating Unit 起始单元

  • Cycling Unit 循环装置

  • Master Programmer – panel 1 and 2 主程序员 – 面板 1 和 2

  • Function Table 1 – panel 1 and 2 功能表 1 – 面板 1 和 2

  • Accumulator 1 累加器 1

  • Accumulator 2 累加器 2

  • Divider and Square Rooter 除法器和平方根器

  • Accumulator 3 累加器 3

  • Accumulator 4 累加器 4

  • Accumulator 5 累加器 5

  • Accumulator 6 累加器 6

  • Accumulator 7 累加器 7

  • Accumulator 8 累加器 8

  • Accumulator 9 累加器 9

Back wall 后墙

  • Accumulator 10 累加器 10

  • High-speed Multiplier – panel 1, 2, and 3 高速乘法器 – 面板 1、2 和 3

  • Accumulator 11 蓄能器 11

  • Accumulator 12 累加器 12

  • Accumulator 13 累加器 13

  • Accumulator 14 累加器 14

Right wall 右墙

  • Accumulator 15 蓄能器 15

  • Accumulator 16 蓄能器 16

  • Accumulator 17 累加器 17

  • Accumulator 18 累加器 18

  • Function Table 2 – panel 1 and 2 功能表 2 – 面板 1 和 2

  • Function Table 3 – panel 1 and 2 功能表 3 – 面板 1 和 2

  • Accumulator 19 累加器 19

  • Accumulator 20 累加器 20

  • Constant Transmitter – panel 1, 2, and 3 恒定发射器 – 面板 1、2 和 3

  • Printer – panel 1, 2, and 3 打印机 – 面板 1、2 和 3

UNIVAC-I

同年,莫奇利和埃克特创立了世界上第一家电子计算机公司,并开始研制UNIVAC-I(通用自动计算机 I),这是世界上第一款批量生产的电子计算机,共生产了48台。它主要由 ENIAC 的发明者 J. Presper Eckert 和 John Mauchly 设计。UNIVAC-I的问世标志着“计算机”一词专指电子自动计算机器的开始。

图片

1951 年美国人口普查局的 UNIVAC I


UNIVAC 预测艾森豪威尔将获得 32,915,949 张选票,并以 438 比 93 赢得选举人团。在选举之夜,艾森豪威尔以 442 票对 89 票的选举人团胜利获得 34,075,029 张选票。UNIVAC 的误差率为艾森豪威尔普选票总数的 3.5%,与他的选举人票总数相差不到 4 票。该预测及其在 CBS 选举报道中的使用提高了公众对计算技术的认识,而计算机化预测成为选举之夜广播中广泛使用的一部分。

这一系列事件标志着电子管计算机时代的到来,为后续计算机技术的发展奠定了基础。

参考来源:

穿孔胶带 - 维基百科,自由的百科全书 --- Punched tape - Wikipedia

差分引擎 - 维基百科,自由的百科全书 --- Difference engine - Wikipedia

Z1 (计算机) - 维基百科,自由的百科全书 --- Z1 (computer) - Wikipedia

ENIAC - 维基百科,自由的百科全书 --- ENIAC - Wikipedia


计算硬件的历史 - 维基百科,自由的百科全书 --- History of computing hardware - Wikipedia

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/895106.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NewStarCTF2024-Week2-Misc-WP

目录 1、wireshark_checkin 2、wireshark_secret 3、字里行间的秘密 4、你也玩原神吗 5、Hertas Study 6、用溯流仪见证伏特台风 7、热心助人的小明 1、wireshark_checkin 直接字符串搜 flag flag{ez_traffic_analyze_isnt_it} 2、wireshark_secret 查看原始数据 导出十…

STM32应用详解(2)GPIO之LED闪烁——学习使用寄存器操作方法编写延时函数

文章目录 前言一、笔记1.GPIO控制LED闪烁的两种方法:2.系统时钟3.延时函数的实现(us) 二、代码1.main函数2.延时函数3.固件库函数4.毫秒和秒延时函数5.整体函数结构 前言 学习使用寄存器操作方法编写延时函数。 一、笔记 1.GPIO控制LED闪烁的两种方法:…

C语言小游戏--猜数字

游戏过程: 由电脑随机在某个范围内生成一个数字,玩家猜数字并且输入,电脑判断是否正确,正确则游戏结束,错误则给出提示,直到玩家所给的答案正确为止 思路分析: 1.生成随机数 2.玩家可以多次…

springboot037基于SpringBoot的墙绘产品展示交易平台的设计与实现(论文+源码)_kaic

毕 业 设 计(论 文) 题目:墙绘产品展示交易平台设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本墙绘产品展示…

Golang | Leetcode Golang题解之第479题最大回文数乘积

题目: 题解: func largestPalindrome(n int) int {if n 1 {return 9}upper : int(math.Pow10(n)) - 1for left : upper; ; left-- { // 枚举回文数的左半部分p : leftfor x : left; x > 0; x / 10 {p p*10 x%10 // 翻转左半部分到其自身末尾&…

CMOS 图像传感器:像素寻址与信号处理

CMOS image sensor : pixel addressing and signal processing CMOS image sensor 对于寻址和信号处理有三种架构 pixel serial readout and processingcolumn parallel readout and processingpixel parallel readout and processing 其中,column parallel reado…

香港举办AIHCIR 2024国际学术会议,领先人工智能、人机交互和机器人技术

第三届人工智能、人机交互和机器人国际学术会议 (AIHCIR 2024)将于2024年11月在中国香港举行,聚焦AI、人机交互与机器人领域,邀请知名学者演讲,促进学术交流。论文经评审后提交EI检索,投稿需全英文&#xf…

《宗喀大慈宏觉寺——唐蕃古道上的千年古刹》新书发布会在京举行

10月18日,《宗喀大慈宏觉寺——唐蕃古道上的千年古刹》新书发布会在中国藏学研究中心举行 发布会现场 2024年10月18日上午,由中国藏学研究中心科研业务办公室主办、中国藏学出版社承办的《宗喀大慈宏觉寺——唐蕃古道上的千年古刹》新书发布会在中国藏学…

【算法】哈希表:49.字母异位词分组

目录 1、题目链接 2、题目介绍 3、解法 初始化设定--图解 步骤图解 4、代码 1、题目链接 49. 字母异位词分组 - 力扣(LeetCode) 2、题目介绍 3、解法 字母异位词的本质是字符相同但排列不同。因此,我们可以对字符串进行排序&#xf…

Lucas带你手撕机器学习——线性回归

什么是线性回归 线性回归是机器学习中的基础算法之一,用于预测一个连续的输出值。它假设输入特征与输出值之间的关系是线性关系,即目标变量是输入变量的线性组合。我们可以从代码实现的角度来学习线性回归,包括如何使用 Python 进行简单的线…

Thread的基本用法

创建线程 方法一 继承Thread类 继承 Thread 来创建一个线程类. class MyThread extends Thread {Overridepublic void run() {System.out.println("这里是线程运行的代码");} } 创建 MyThread 类的实例 MyThread t new MyThread(); 调用 start 方法启动线程 t…

《深空彼岸》TXT完整版下载,知轩藏书校对版!

【内容简介】:   浩瀚的宇宙中,一片星系的生灭,也不过是刹那的斑驳流光。仰望星空,总有种结局已注定的伤感,千百年后你我在哪里?家国,文明火光,地球,都不过是深空中的一…

2024 年 9 月区块链游戏研报:行业回暖,Telegram 游戏引发热潮

作者:Stella L (stellafootprint.network) 数据来源:Footprint Analytics Games Research Page 9 月份,区块链游戏代币的市场总值增长了 29.2%,达到 232 亿美元,日活跃用户(DAU)数量上升了 1…

C++进阶:AVL树实现

目录 一.AVL的概念 二.AVL的实现 2.1AVL树的结构 2.2AVL树的插入 2.2.1AVL树插入一个值的大概过程 2.2.2平衡因子更新 2.2.3插入节点及更新平衡因子的实现 2.3旋转 2.3.1旋转的原则 2.3.2右单旋 2.3.3右单旋的代码实现 2.3.4左单旋 2.3.5左单旋的代码实现 2.3.6…

腾讯云宝塔面板前后端项目发版

后端发版 1. 打开“网站”页面,找到java项目,点击状态暂停服务 2.打开“文件”页面,进入jar包目录,删除原有的jar包,上传新jar包 3. 再回到第一步中的网站页面,找到jar项目,启动项目即可 前端发…

项目一:3-8译码器的设计与实现(FPGA)

本文以Altera公司生产的Cyclone IV系列的EP4CE15F17C8为主芯片的CRD500开发板作为项目的硬件实现平台,并以Quarter 18.1和ModelSim为开发工具和仿真工具。 目录 一、3-8译码器工作原理 二、设计步骤 1、创建工程文件夹和编辑设计文件 (1)…

微信小程序上传组件封装uploadHelper2.0使用整理

一、uploadHelper2.0使用步骤说明 uploadHelper.js ---上传代码封装库 cos-wx-sdk-v5.min.js---腾讯云,对象存储封装库 第一步,下载组件代码,放置到自己的小程序项目中 第二步、 创建上传对象,执行选择图片/视频 var _this th…

【成长day】SuperPointSuperGlue(02): Superglue论文算法学习与对应源码解析

论文工作地址:https://psarlin.com/superglue/ 论文地址:https://arxiv.org/abs/1911.11763 讲解PPT:https://psarlin.com/superglue/doc/superglue_slides.pdf 论文源码:https://github.com/magicleap/SuperGluePretrainedNetwor…

WebRTC音频 03 - 实时通信框架

WebRTC音频01 - 设备管理 WebRTC音频 02 - Windows平台设备管理 WebRTC音频 03 - 实时通信框架(本文) WebRTC音频 04 - 关键类 WebRTC音频 05 - 音频采集编码 一、前言: 前面介绍了音频设备管理,并且以windows平台为例子,介绍了ADM相关的类…

【分立元件】方形贴片固定电阻器制造流程

方形贴片固定电阻器是怎么制造的呢?我们在文章【分立元件】电阻的基础知识中介绍到电阻器中的固定电阻器,其品种有贴片电阻器。 贴片电阻器如下所示&#