程序如何“进入”计算机
在前面关于介绍计算机原理的过程需要到的指令和数据都是预先存储到RAM中,本P讲如何将指令和数据传递给计算机(早期计算机“内存”用卡片或纸带,如今采用RAM)。
最早的编程需求
图案纺织品消耗巨大劳动力
如果是单纯纺织一块纯色布匹,只需要将线料放入织布机工作即可,但是如果是想纺织带图案的布匹,工人必须每隔一会调整依次织布机,制作成本尤其之高。
雅卡尔提花机 可编程纺织机
雅卡尔提花机这种革命性的织布机利用预先打孔的卡片来控制织物的编织式样,速度比老式手工提花机快了25倍,就好比从自行车到汽车的飞跃。
严格意义上讲,这跟后来用于人口普查的纸卡汇总机(起到数据汇总的作用),操作固定,不能真正意义上实现编程。
编程后续发展
插线板 控制面板
上述机器在后来得到加强,可以做加减乘除等基本指令,为了正确执行不同计算,程序员需要操作控制面板,让机器的不同部分互相传递数据和信号。
可存储程序计算机
早期计算机价格昂贵,如果需要更换程序,还得停机装入新程序,重新接线等好几个星期的准备工作。RAM因此在后来被人们所发明和使用,但是程序写入内存还是得通过打孔纸卡实现。
冯诺依曼结构
冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。
数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。
面板编程
不同于插线板用一堆线实现编程,面板编程采用一堆开关来实现编程。
早期的编程方式,要求每一个程序员都充分了解底层的实现原理,编程尤其困难。于是,一种更简单的编程方式——编程语言开始出现。