📄 一句话概括

计算机不是"造出来"的,是先"想出来"的:图灵 1936 年在纸上证明了通用机器可行,十年后战争把经费催了出来——ENIAC 亮相比它更有思想,但改程序要插几天电线;冯·诺依曼的"存储程序"设计让程序变成内存里的数据,从此一台机器能跑无数程序,现代计算机就此诞生。


1. 承上:路铺好了,第一台机器在哪

04 篇我们走完了器件之路(布尔 → 香农 → 继电器 → 真空管);05~07 篇拆开了机器内部(指令、CPU、流水线)。这篇补上中间那段历史:世界上第一台电子计算机,到底是谁、在哪、怎么诞生的?

先剧透一个冷知识:这个问题 1973 年是由法官判出来的,不是历史学家——因为"第一台"争了三十年。

2. 思想先行:图灵的"通用机器"(1936)

造机器之前十年,一个 24 岁的英国数学家图灵先回答了一个更根本的问题:"计算"到底是什么?有没有机器算不了的东西?

他用一条纸带 + 一个读写头构造了一个假想机器(图灵机),证明了:

  1. 一切"有明确步骤的问题",都能被这种机器计算
  2. 存在一种通用图灵机——它读入"另一台机器的描述",就能模仿那台机器工作

📝 第 2 条就是"软件"的思想种子

"读入描述 → 变成另一台机器",翻译成今天的话就是:读入程序 → 变成能干那件事的机器。你装一个 App 手机就变一种机器,这个可能性图灵在机器还没造出来时就证明了。05 篇的"存储程序"、06 篇的取指执行循环,全是他这个思想的工程化。

3. 战争催生:从 ABC 到 ENIAC

理论有了,还差两个东西:钱和急迫的需求。二战把这两样一起送来了——炮弹弹道表要算,破译密码要算,人力算不过来。

机器 年份 是什么 结局
ABC 机(阿塔纳索夫-贝瑞) 1942 首次用电子管做计算,但只能解方程,不可编程 没造完就散了,淡出视线
巨人 Colossus(英国) 1944 电子破译密码机,快而专用 保密到 1970s,缺席"第一"之争
ENIAC(宾夕法尼亚大学) 1946 第一台通用电子计算机:可编程、电子速度、能跑不同任务 1946 年 2 月 14 日公开亮相,一鸣惊人

ENIAC 的规格(04 篇提过,这里补全):约 17,468 只真空管、30 吨、167 m²、150 kW,每秒 5,000 次加法——比人力快几千倍。但它有个致命别扭:

📌 ENIAC 的"编程":插线

ENIAC 没有内存存程序。想让它算弹道?6 名女程序员要手动拔线、插线、设几千个开关,把机器"接"成那个任务的形状。换个任务,重插几天。机器每秒算 5,000 次,换脑子却要几天——算得快,"改主意"极慢。

这 6 位女程序员(吉恩·巴蒂克等)没有编程语言、没有教程,靠看电路图摸索,后来被称为世界上第一批程序员。"程序"这个词从她们手里开始有了今天的含义。

4. 关键一跃:冯·诺依曼与存储程序(1945)

数学家冯·诺依曼 1944 年加入 ENIAC 团队当顾问,1945 年起草了著名的 EDVAC 报告草案(101 页,只署他一个人的名——团队对此有意见,所以这套结构后来也叫"冯·诺依曼结构")。核心设计一句话:

把程序当作数据,和数据一起存进内存;机器按地址自动取指令执行。

对照 05、06 篇你会发现,这份 1945 年的草案就是:

也就是说:你今天用的每一台电脑、每一部手机,结构上仍是 1945 年那份草案的直系后代——所以都叫"冯·诺依曼机"。

1948 年曼彻斯特大学的"Baby"机首次跑通存储程序,1949 年 EDSAC 成为第一台实用的存储程序计算机。ENIAC 团队自己马上按新思想造了 EDVAC——连"第一代机"自己都在换代。

💡 顺便平反:ENIAC 也不是"抄"来的

ENIAC 的设计者莫奇利 1941 年参观过 ABC 机。1973 年美国法院在专利案中据此裁定:电子数字计算机的发明者应为阿塔纳索夫(ABC),ENIAC 专利无效。但历史公论是:ABC 不可编程、不算通用机;"现代计算机之父"的桂冠,公认落在"图灵(思想)+ 冯·诺依曼(结构)"两人身上,ENIAC 团队则是把通用电子计算机造出来的人。

5. 走出实验室:从一台到一门产业

6. 整条线合拢:你现在站在哪

把 01~08 串一遍,你会发现"诞生"不是某天某台机器,而是一条链:

布尔给逻辑装上数学(1854)
  → 图灵证明通用机器可行(1936,思想)
  → 香农发现开关能算布尔代数(1937,桥梁)
  → 战争出钱,ENIAC 造出来(1946,工程)
  → 冯·诺依曼设计存储程序(1945-48,结构定型)
  → 晶体管/集成电路(1947-58,器件换代)
  → 你桌上的冯·诺依曼机(今天,结构未变)

80 年过去,机器大了、快了几个数量级,但"程序即数据、取指执行"的灵魂一天没变过。

7. 常见误区

⚠️ 误区一:第一台电子计算机是 ENIAC

教科书老说法。按 1973 年判决,电子数字计算机的发明者是 ABC 机(1942);但 ABC 不可编程,所以"第一台通用电子计算机"仍是 ENIAC。争"第一"取决于你怎么定义。 [!warning] 误区二:冯·诺依曼一个人发明了计算机 没有。他贡献的是结构设计(存储程序),而且 EDVAC 报告基于整个团队(埃克特、莫奇利等)的讨论,只署他的名让埃克特很不服。机器是团队造的,思想源头还有图灵。 [!warning] 误区三:图灵造了图灵机 图灵机是纸上的思想实验,从来不是一台真机器。它的价值是回答"什么是可计算的",并为后来的存储程序指路。 [!warning] 误区四:计算机是和平年代的科技发明 直接受二战驱动:弹道表、密码破译、原子弹计算。冷战接着出钱。重大技术背后常有急迫的战争需求,计算机是最典型的例子。 [!warning] 误区五:程序员是软件出现之后才有的职业 ENIAC 时代就有程序员了——那 6 位插线的女工程师。硬件机器没变,她们"重插的线"后来变成了"重写的代码"。

8. 可折叠自测题

❓ - Q1. 图灵 1936 年的贡献是什么?为什么说领先了十年?

提出图灵机模型,证明"通用机器"在理论上可行——读入一台机器的描述就能模仿它。十年后(1946)第一台通用电子计算机才造出来,所以计算机是"先想出来、再造出来"的。 [!question]- Q2. ENIAC 改一次程序要多久?为什么? 几天。因为它没有内存存程序——"编程"是手动拔线、插线、设开关,把机器接成任务的形状。程序不能当数据存,换任务就得动硬件。 [!question]- Q3. 冯·诺依曼结构的核心是什么?你现在的电脑还是这个结构吗? 存储程序:程序当数据存进内存,机器按地址自动取指执行。是——今天所有主流电脑和手机在结构上仍是冯·诺依曼机,80 年没换过灵魂。 [!question]- Q4. "第一台电子计算机"的归属为什么由法院判决?判给了谁? ENIAC 设计者莫奇利参观过 ABC 机,专利案中法院据此于 1973 年裁定 ABC 的发明者阿塔纳索夫为电子数字计算机发明人。但 ABC 只能解方程、不可编程,"第一台通用电子计算机"仍归 ENIAC。 [!question]- Q5. 世界上第一批程序员是谁?他们的"编程"怎么做的? ENIAC 的 6 位女工程师。没有语言和教程,靠看电路图手动插线、设开关来"编程"。她们的"重插的线"演变成了今天的"重写的代码"。


9. 下一步学什么


10. 相关笔记