数组的由来

程序员人人都会用数组,就是这最简单的数据结构,那也得有人发明。

计算机数据结构意义上的数组,是伴随第一台通用计算机而诞生的,这第一台通用计算机,就是 ENIAC。普遍认为,ENIAC 是第一台现代意义上的计算机。之前那些织布机、图灵的炸弹机都不算。阿塔那索夫的 ABC机是电子的,但不通用。


ENIAC 是为美国陆军弹道试验室设计的,用来计算炮弹的弹道。接这个活的,是宾夕法尼亚大学的莫尔学院。全世界都一样,大学的教授们除了教书,还药四处找活计挣钱。

1943年,宾大的两位老师承接了这个课题,一位叫 J. Presper Eckert,当时很年轻,才 24 岁,另一位是John Mauchly,36岁。概念设计来自 John Mauchly,也是他申请下来这个项目。但真正实现,是J. Presper Eckert搞的,J. Presper Eckert是总工。他们俩带着一群科学家和工程师。这其中还有一位中国人,朱传矩,天津人,好多国家领导人接见过朱老。



ENIAC 中就用到了数组。应该是数组数据结构在计算机中第一次出现。

ENIAC 是电子管计算机,并且呢,是十进制的。 ENIAC 是通用计算机,用一些旋钮来做编程指令,数据的输入和输出通过IBM打孔带。ENIAC 编程非常麻烦,而且维护需要时间长。

于是,天才加入了。 这个地球上最聪明的人,冯诺依曼看到了,他44年接触到 ENIAC,6 个月后,发表《101报告》,冯诺依曼架构诞生。主要的改进是,第一,采用二进制;第二,存储程序,也就是真正的可编程,把程序和数据都编成代码输入计算机,不再需要拉线调按钮。


现在数字货币总是说“可编程货币”、“可编程世界”,听起来很科幻,实际上,70年前,冯诺依曼这些科学家就在追求这个。不过,当时,他们追求的是计算机“可编程”,也就是程序代码虚拟化,不依赖硬件。今天,数字货币追求的是“虚拟货币”这样一个计算机中的“数字对象”是可编程的。

冯诺依曼和数组也有关系,他写了第一个数组排序算法,归并排序(Merge Sorting)。

冯诺依曼也是跨学科的天才,是计算机之父,还是博弈论之父,也是原子弹之父,在量子力学、集合论上也有开创性工作。

不过,还有人比冯诺依曼更聪明,冯诺依曼架构成就了信息化时代,但这个思想借鉴了皮茨的思想。《101报告》煌煌巨著,只有一个引文,那就是皮茨和麦卡洛克的《A Logical Calculus of Ideas Immanent in Nervous Activity》,MP神经网络。说到底,计算机和AI是一根藤上两个瓜。

说回 J. Presper Eckert 和 John Mauchly,二人后来创立了自己的计算机公司,但经营不好,最终被unisys收购,Eckert 就在 unisys 退休了。

Mauchly 后来自己又创立了两家咨询公司。Mauchly 还有个值得讲的经历,他是 ACM 的发起人之一。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章