上周四,一位前NASA的實習生Chris Garry在Github上公開了「阿波羅11號」登月項目計算機制導系統的原始碼,使得普通民眾也能一覽航天登月系統的內部實現邏輯。(只不過當年用彙編寫的代碼,一般人可能看不太懂就是了)
其實,「阿波羅11號」登月項目的原始碼早在2003年就被科技學者Ron Burkey公布於眾,那時他不得不從一份原文的掃描版中人工將代碼一行一行地敲入計算機,並上傳到網絡。如下圖所示,照片右側一人高的紙上全是阿波羅11號登月的代碼,你就可以想像Ron Burkey是多麼有毅力的一個人。除了上傳該代碼,Ron Burkey還根據自己對代碼邏輯的理解,寫了一個阿波羅11號制導系統的仿真程序,關於該程序的視頻大家可以點這裡。
可能由於分享工具的關係,當年代碼上傳後並沒有被廣大的程式設計師看到(也可能當年的程式設計師數量比較少)。一直到上周四代碼被上傳到Github,這才引起了廣泛的關注和熱烈的討論。
經過火眼金睛的網友、程式設計師們的仔細研讀,不禁在代碼裡發現了許多有趣的段落,小編現摘錄如下。
1. 首先是在現代系統編程中被明令禁止的「魔鬼數字」(一般都要求在代碼開頭用帶有明確意義的宏定義代替程序中出現的具體數字,否則會造成他人閱讀程序的障礙)。萬萬沒想到,堂堂大NASA登月計劃的代碼裡竟然隱藏了「魔鬼數字」,不禁令廣大的程式設計師朋友們咋舌。
2. 另外,阿波羅的程式設計師們在一段關於點火程序的注釋裡,竟然講起了故事,是的,你沒有聽錯,是在講故事。詳細介紹了那句「Burn,Baby!Burn!」的由來。(大意是說這句話最先來自一位著名電臺主持Magnificent Montague,經他之手捧紅了一大批美國Soul Music歌曲)
3. 還有,阿波羅的程式設計師們非常貼心,還在代碼的相關部分寫上了航天員此刻在進行飛船操作時的注意事項,比如「請展開登錄雷達」等。當然,這裡阿波羅的程式設計師用the silly thing(蠢東西)代指了landing radar(登錄雷達)(~ ̄▽ ̄)~。
4. 更令人吃驚的是,登月代碼裡竟然還隱藏了莎士比亞的名著《亨利六世》中的一個片段:"IT WILL BE PROVED TO THY FACE THAT THOU HAST MEN ABOUT THEE THAT USUALLY TALK OF A NOUN AND A VERB, AND SUCH ABOMINABLE WORDS AS NO CHRISTIAN EAR CAN ENDURE TO HEAR." 大義是說:「我要徑直向你們指出,你任用了許多人,讓他們大談什麼名詞啊,什麼動詞啊,以及這一類的可惡字眼,這都是任何一個基督徒的耳朵所不能忍受的」。
關於為什麼會在代碼裡出現這麼一段「莎翁名言」,有人猜測是因為MIT(麻省理工)的科學家在構建登月代碼時將許多程序指令預設成一個數字,然後通過這些「數字」來進行操作,比如「37」就代表「執行(Run program)」。然後下面執行編寫任務的程式設計師們不勝其煩,整天要查表才能知道這些數字究竟代表什麼意思,於是忍不住在代碼裡吐槽了一下。
現在,任何人都可以訪問GitHub來獲取阿波羅11號制導系統的原始碼,感興趣的朋友們不妨去看看吧:請點擊。
來源:engadget,Quartz,sourceforge
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。