Files
book/docs/cs/10/index.md
2023-11-14 00:04:01 +08:00

69 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 早期的编程方式
<author name="虞嘉乐" title="21 计算机 4 班 "/>
:::tip
[前去观看第十集](https://bilibili.com/BV1EW411u7th?p=10)
:::
## 最初的编程
人们对于编程的需求远在计算机出来之前,而当中最著名的例子来自于纺织业。如果只是纯色的纺织品非常简单,但想要有图案的纺织品是,工人们就要每隔一会就调整一次织布机,这当中有着非常大的劳动力需求。正因如此,以前带有图案的纺织品价格十分昂贵。
因此, **约瑟夫·玛丽·雅卡尔** 在 1801 年发明了世界上最早的编程——可编程纺织机。
![最早的编程](%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20221113194322.png)
## 早期如何编程
最初的编程用到的是可穿孔纸卡,通过特定位置是否有孔来确定图案。后来,可穿孔纸卡也在 1890 年用于美国的人口普查,但要注意,汇总机并不算计算机,它只做到了汇总数据,而不能编程,在几十年后,它们才可以做到一些减乘除,一些小决定。
## 控制面板的过去
早期的面板有很多小插孔,程序员可以插电线,让机器的不同部分互相传数据和信号,正是这些特性,早期的面板就有一个十分相称的名字 —— 插线板。
![插线板](%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20221113194808.png)
但插线板有一个“**小小**”的缺点,那就是运行不同程序是,要重新接线。所以到了 1920 年代,控制面板变成了可插拔。
可插拔的控制面板让编程更方便,现在可以给机器插入不同的程序,而不用重新接线了。举个栗子,一个插线板用来算税,另一个算工资账单。
但给插线板编程很复杂,下图中乱成一团的线就足以说明。而这,在 1940 年代十分流行。_早期的程序员看这个真的不会头秃吗_
![超级复杂!](%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20221113195538.png)
## 存储程序计算机
用插线板编程,不只在机电计算机中流行,于 1946 年完成的第一台通用电子计算机用的也是插线板编程。但是程序的更换需要非常大量的时间,最多可能要花三个星期,由于早期的计算机十分昂贵,停机几周只是为了换程序,完全无法接受,所以在 1940 年代晚期到 1950 年代出,人们发明了内存。通过把程序储存在内存中,使程序易于修改,方便 CPU 快速读取,这类机器叫“**存储程序计算机**”。
## 冯诺依曼结构
一个名为*约翰·冯·诺伊曼*的人提出了一种结构——程序与数据都存在一个地方,而这,就叫做“**冯诺依曼结构**”。冯诺依曼结构的计算机的标志是有一个处理器(有算术逻辑单元的)+ 数据寄存器 + 指令寄存器 + 指令地址寄存器 + 内存(存数据和指令)。看到这里,你是否感到有一丝丝的眼熟呢?没错,在第 7 章,我们造的就是冯诺依曼结构的计算机。
![复习一下](%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20221113201633.png)
而这种结构的计算机由曼彻斯特大学与 1948 年建造完成,绰号“宝宝”。如今,我们所用到的计算机也在用一样的结构。
![是他,是他,就是他,我们的计算机,小“宝宝”!](%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20221113201716.png)
## 穿孔纸卡的再就业
虽然有了内存,但程序和数据及就需要某种方式输入进去。这个时候,穿孔纸卡就有了就业空间。到 1980 年代,几乎所有计算机都有穿孔纸卡读取器,将一叠卡片放进去,读取器会一个个写入内存,直到写入完毕,电脑开始执行。
:::info
用纸卡的最大程序使美国空军的 SAGE 防空系统,与 1955 年完成,据称顶峰时期雇佣了世上 20%的程序员。主控制程序用了 62500 张纸卡,等同于如今的 5MB
:::
## 面板编程
在 1980 年代之前,还有一种常见的编程方式 —— **面板编程**
面板编程用大量的开关和按钮做到和插线板一样的效果,在面板上有指示灯,代表各种函数状态和内存中的值。在 50 年代和 60 年代的计算机一般都有这么巨大的控制台。
![超大号控制台](%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20221113203315.png)
早期的家用计算机使用了大量的开关,因为大多数家庭都负担不起昂贵的外围设备,如穿孔纸卡读取器。这种计算机要编程,需要多次的拨动面板上的开关,最后按下运行按钮。
![Alt text](%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20221113203640.png)
## 总结
在早期,不管是用什么进行编程,都需要非常了解底层硬件,这让编程变得十分困难。于是,人们发明出了更简单的编程方式 —— **编程语言**
## 接下来
下一章,我们开始学习程序语言的发展史。