打孔纸板 Punched card
编程首先出现于纺织业,用户编织图案,Joseph Marie Jacquard 发明了可编程纺织机,打孔纸板的特定位置的穿孔情况决定了线的高低。打孔纸板的优势是便宜、可靠、易懂。
插线板 Plugboard
为了正确执行不同计算,需要控制面板,面板有很多小插孔,程序员可以插电线。问题是运行不同程序要重新接线,插线板编程很复杂。第一台通用电子计算机 ENIAC 完成于 1946 年。
冯诺依曼架构 Von Neumann architecture
1940 年代,内存价格下降,容量上升,将数据存储于内存变得可行,不再存储于插线板。这使得程序易于修改,方便 CPU 快速读取。程序和数据都存在一个地方,叫 冯诺依曼架构:一个处理器(算数逻辑单元+数据寄存器+指令寄存器+指令地址寄存器) + 内存(负责存数据和指令)。1948年完成第一台冯诺依曼架构的计算机 Manchester Baby,这时指令输入计算机的方式回归到了打孔纸板,通过打孔纸板将数据和指令写入内存,同时可以将运行结果从内存输出到纸卡上。
面板编程 Panel programming
1980 年代,面板编程出现,面板上有很多按钮,每个按钮代表一个指令,按下按钮就执行指令。面板编程的优势是简单易懂,缺点是只能执行固定的指令,不适合复杂的程序。第一款商业成功的家用计算机 Altair 8800,可以购买预先装好的整机,或者需要组装的组件。