1
本文作者: 恒亮 | 2016-07-11 15:18 |
上周四,一位前NASA的實(shí)習(xí)生Chris Garry在Github上公開了“阿波羅11號”登月項(xiàng)目計(jì)算機(jī)制導(dǎo)系統(tǒng)的源代碼,使得普通民眾也能一覽航天登月系統(tǒng)的內(nèi)部實(shí)現(xiàn)邏輯。(只不過當(dāng)年用匯編寫的代碼,一般人可能看不太懂就是了)
其實(shí),“阿波羅11號”登月項(xiàng)目的源代碼早在2003年就被科技學(xué)者Ron Burkey公布于眾,那時(shí)他不得不從一份原文的掃描版中人工將代碼一行一行地敲入計(jì)算機(jī),并上傳到網(wǎng)絡(luò)。如下圖所示,照片右側(cè)一人高的紙上全是阿波羅11號登月的代碼,你就可以想象Ron Burkey是多么有毅力的一個(gè)人。除了上傳該代碼,Ron Burkey還根據(jù)自己對代碼邏輯的理解,寫了一個(gè)阿波羅11號制導(dǎo)系統(tǒng)的仿真程序,關(guān)于該程序的視頻大家可以點(diǎn)這里。
可能由于分享工具的關(guān)系,當(dāng)年代碼上傳后并沒有被廣大的程序員看到(也可能當(dāng)年的程序員數(shù)量比較少)。一直到上周四代碼被上傳到Github,這才引起了廣泛的關(guān)注和熱烈的討論。
經(jīng)過火眼金睛的網(wǎng)友、程序員們的仔細(xì)研讀,不禁在代碼里發(fā)現(xiàn)了許多有趣的段落,小編現(xiàn)摘錄如下。
1. 首先是在現(xiàn)代系統(tǒng)編程中被明令禁止的“魔鬼數(shù)字”(一般都要求在代碼開頭用帶有明確意義的宏定義代替程序中出現(xiàn)的具體數(shù)字,否則會(huì)造成他人閱讀程序的障礙)。萬萬沒想到,堂堂大NASA登月計(jì)劃的代碼里竟然隱藏了“魔鬼數(shù)字”,不禁令廣大的程序員朋友們咋舌。
2. 另外,阿波羅的程序員們在一段關(guān)于點(diǎn)火程序的注釋里,竟然講起了故事,是的,你沒有聽錯(cuò),是在講故事。詳細(xì)介紹了那句“Burn,Baby!Burn!”的由來。(大意是說這句話最先來自一位著名電臺(tái)主持Magnificent Montague,經(jīng)他之手捧紅了一大批美國Soul Music歌曲)
3. 還有,阿波羅的程序員們非常貼心,還在代碼的相關(guān)部分寫上了航天員此刻在進(jìn)行飛船操作時(shí)的注意事項(xiàng),比如“請展開登錄雷達(dá)”等。當(dāng)然,這里阿波羅的程序員用the silly thing(蠢東西)代指了landing radar(登錄雷達(dá))(~ ̄▽ ̄)~。
4. 更令人吃驚的是,登月代碼里竟然還隱藏了莎士比亞的名著《亨利六世》中的一個(gè)片段:"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." 大義是說:“我要徑直向你們指出,你任用了許多人,讓他們大談什么名詞啊,什么動(dòng)詞啊,以及這一類的可惡字眼,這都是任何一個(gè)基督徒的耳朵所不能忍受的”。
關(guān)于為什么會(huì)在代碼里出現(xiàn)這么一段“莎翁名言”,有人猜測是因?yàn)镸IT(麻省理工)的科學(xué)家在構(gòu)建登月代碼時(shí)將許多程序指令預(yù)設(shè)成一個(gè)數(shù)字,然后通過這些“數(shù)字”來進(jìn)行操作,比如“37”就代表“執(zhí)行(Run program)”。然后下面執(zhí)行編寫任務(wù)的程序員們不勝其煩,整天要查表才能知道這些數(shù)字究竟代表什么意思,于是忍不住在代碼里吐槽了一下。
現(xiàn)在,任何人都可以訪問GitHub來獲取阿波羅11號制導(dǎo)系統(tǒng)的源代碼,感興趣的朋友們不妨去看看吧:請點(diǎn)擊。
來源:engadget,Quartz,sourceforge
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。