在1948年4月12日,第一个在电子计算机上运行的程序是运行在 ENIAC上,如下图所示(部分显示),它比当年6月21日在曼彻斯特宝贝(Manchester Baby)上运行的17行程序还要早两个月。
ENIAC 代码
这是一个840指令程序,为数据位置和跳转目标使用了一个子程序、嵌套循环和间接寻址。 它是由 John和 Klara von Neumann设计的关于核裂变中子衰变的蒙特卡罗模拟。
这两台计算机的不同之处在于, ENIAC的程序存储在只读存储器中,与数据存储器分开,现在称为哈佛架构,主要由微控制器使用,如下图所示,
哈佛架构
而 Manchester Baby的程序和数据都存储在读/写存储器中(现在称为冯·诺依曼架构)。到目前为止,现在的计算机还是基于冯·诺依曼架构。
冯·诺依曼架构
最初在1946年, ENIAC没有程序内存——它是通过改变主要组件之间的连接来编程,一年后,由于 von Neumann的建议, ENIAC被修改为从只读内存运行程序。但是有意思的是,他的第一个项目是在现在的哈佛架构中运行的,而不是现在的这个。
实际上,第一 个在计算机上运行的程序可能运行在 KonradZuse的Z3中继计算机(1941年)上,但是Z3的任何原始源代码都已经找不到了。