哈佛機 體驗一把穿孔紙帶上的程式設計

2021-09-30 00:25:36 字數 3239 閱讀 1383

稍晚些時候,踏足機電計算領域的還有哈佛大學。當時,一名在校的物理學博士生——霍華德·艾肯(howard hathaway aiken),和當年的祖思一樣,被手頭繁複的計算困擾著,一心想建臺計算機,於是從2023年開始,抱著方案四處尋找願意合作的公司,最終是ibm伸出了橄欖枝。

霍華德·哈瑟維·艾肯(howard hathaway aiken),1900-1973,美國物理學家。(來自維基百科)

彼時的ibm,已是單元記錄市場的巨頭企業,擁有豐富的計算裝置建造經驗。而除了其主營的製表機型,當時的總裁托馬斯·沃森(thomas john watson)對嘗試通用計算機也頗有興趣。

艾肯想實現自己的理想,沃森想進一步提高公司的聲譽,兩人一拍即合。2023年3月31日,哈佛和ibm簽訂協議,哈佛方面由艾肯主導設計,ibm方面則派出頂尖的工程師團隊負責實現,最終成果歸哈佛所有。

ibm斥資40~50萬美元,卻甘願把成果拱手相讓,正是因為沃森不在乎錢也不準備打造產品,而純粹是為了彰顯公司的實力。照理說,哈佛和ibm的貢獻是對等的。不料,在機器建好之後的慶典上,哈佛新聞辦公室與艾肯私自準備的新聞稿中,嚴重偏袒了己方的功績,對ibm的功勞沒有給予足夠的認可,把沃森氣得與艾肯老死不相往來。

這台強強聯合、於2023年完成的計算機名叫harvard mark i,在「娘家」ibm被稱為ibm自動順序控制計算機(ibm automatic sequence controlled calculator),ascc。

mark i是當年的大型計算機,它由約765000個機電元件組成,內部電線總長達800公里。機器長約15.5公尺,高約2.4公尺,重達5噸,撐滿了整個機房的牆面。機器左側的玻璃櫃中,是2個30行24列的置數旋鈕陣列(圖中只出鏡了一半),可輸入60個23位十進位制數(留出1位表示正負,0表示正、9表示負);中間部分是更為壯觀的計算陣列,由72個計數器組成,每個計數器包括24個機電計數輪,共可存放72個23位十進位制數;機器的右側部分是若干臺穿孔式輸入輸出裝置,包括2臺讀卡器(用於輸入相對固定的經驗常數)、3臺穿孔帶讀取器(分別讀取存有常數表、插值係數和控制指令的3種穿孔帶)、1臺穿孔機和2臺自動打字機。

來自《a manual of operation for the automatic sequence controlled calculator》

從資料輸入,到資料處理,再到輸出,mark i自始至終在與十進位制打交道,即便它使用了繼電器和穿孔技術。不論是置數旋鈕,還是計數器,其背後都是10齒的金屬輪。對於每個金屬輪,都有乙個電刷與它的某個齒接觸,接通表示相應數值的電路。這個電路進而可以引起某個磁性爪抓住另乙個金屬輪的軸,並帶動它旋轉相應的角度——如此,乙個輪的數值便作用到了另乙個輪身上。

為了程式設計,艾肯給72個計數器和60組置數旋鈕進行了統一編號:

mark i計數器編號

mark i置數旋鈕組編號

乍看之下,編號的規律讓人摸不著頭腦。其實,這和穿孔帶有關。

控制機器執行的穿孔帶上每一行有24個孔位,使用時分成3組,每組8位,用於表示資料位址或操作指令。艾肯將一組的8個孔位從右至左標為1~8,因此以上2表中的編號總是由數字1~7組成。

mark i上的紙質穿孔帶(來自維基百科)

當我們進一步將這些編號轉換為穿孔帶上的孔洞時,不難發現它們本質上就是順序增長的8位二進位制編碼:

mark i資料位址編號的穿孔形式

操作指令也有類似的編號,比如加法指令是7,清空指令也是7,列印指令是7432和74321(對應2臺打字機),乘法指令是761,正弦指令是7631。這些指令往往包含數字7,因為機器只有在遇到含7的指令時才會繼續往下執行,後者會暫停。不同指令在24個孔位中的位置也有所不同,對於不涉及資料的操作,指令可以佔據前8位;對於涉及資料的操作,前8位乃至前16位就需要讓給資料位址,指令只能退居末8位了。以下為幾條具有代表性的**示例。

怎麼樣?是不是挺容易呢?將這些由數字構成的簡單語句按照一定順序排列,用穿孔機在紙帶上打出相應的孔洞,就形成了mark i可以識別的程式,足以解決各種複雜的數學問題。在mark i上執行的第一批程式,就包括了馮·諾依曼為曼哈頓計畫所編寫的原子彈內爆模擬程式。

mark i穿孔機(來自維基百科)

在計算速度上,mark i的表現並不出眾,一次加減運算需要3秒,乘法6秒,除法15.6秒,正弦和乘方往往超過1分鐘,對數運算更是高達89.4秒。但它仍是當時一台十分成功的通用計算機,從2023年5月開始在美國海軍服役了14年之久。

2023年,龐大的mark i被拆解,部件分布於哈佛大學、ibm和史密森學會。

和祖思一樣,艾肯的方案並不侷限於某種材料,他更關注計算機的整體架構。在ibm之前,他曾找到生產銷輪計算器的門羅公司,如果協議達成,那麼mark i就會是純機械的。

和ibm鬧僵之後,艾肯繼續在哈佛大學研製了mark ii~mark iv,它們延續了mark i的架構,在材料上進行了公升級。2023年的mark ii是全繼電器的,並使用了bcd編碼;2023年的mark iii用5000個真空管和1500個晶體二極體取代了部分繼電器,並引入了磁鼓、磁帶等儲存介質;2023年的mark iv則已是純電子計算機,並用效能更好的磁芯儲存器替代了磁鼓。

與同時期其他「重複製造輪子」的先驅不同,艾肯「站在了巨人的肩膀上」,他深入研究了帕斯卡、萊布尼茨、巴貝奇、霍爾瑞斯等前人的工作,並對他們寄予了極高的評價。他充分參考了他們的成果,也將他們的失策引以為戒——正是有了巴貝奇的前車之鑑,艾肯選擇直接利用ibm現成的製表機零件,而沒有走自己生產元件的彎路。

也正得益於這份紮實的調研基礎,艾肯對電腦科學有著更系統、更深刻的理解。2023年,他在哈佛大學開設了計算機專業的碩士學位,成為世界上第一位電腦科學教授,培養出一眾出色的計算機學家。而幾近10年之後,其他大學才陸續開設這一專業,並模仿著艾肯的教學體系。

一把一把撈大資料 釋放無限價值

電商平台對於傳統經濟是個怎樣的存在?是阻礙還是發展,全看你如何選擇。面對新環境還依然按照傳統模式發展必然會受到阻礙,經濟就是要在新的環境下適應新的發展,只故步自封不會有大發展。一把一把撈讓電子商務與大資料技術進一步融合,釋放無限價值。電商平台對於傳統經濟是個怎樣的存在?是阻礙還是發展,全看你如何選擇...

一把鼻涕一把淚 搭建公網ftp伺服器

至於為什麼要搭建公網ftp伺服器,就當我心血來潮吧。ftp開源工具很多,咱用的是filezilla伺服器。後來為了方便搭建web伺服器,就改成了整合工具xampp。客戶端工具也是filezilla client,用瀏覽器也行。首先內網使用者想搭建公網ftp伺服器第乙個要解決的問題是如何得到公網ip。...

為了將來努力一把!

我是來自陝西科技大學電氣專業的同學,白陽。轉瞬間已經來到大三的下半學期,對於未來工作方面的事情還一籌莫展,加上專業課的學習並不深入,這使我面對將要來到的秋招充滿了不安。因此我想另闢蹊徑,多學習一些額外的東西來豐富自己的簡歷,或許能在求職大軍中脫穎而出呢。由於專業與彙編所學內容並無交集,也就是零基礎起...