數組的由來

程序員人人都會用數組,就是這最簡單的數據結構,那也得有人發明。

計算機數據結構意義上的數組,是伴隨第一臺通用計算機而誕生的,這第一臺通用計算機,就是 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 的發起人之一。

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