阿波羅 11 號登月程式碼公佈,其中竟隱藏莎翁名言!

上週四,一位前 NASA 的實習生 Chris Garry 在 Github 上公開了「阿波羅 11 號」登月計劃電腦導引系統的程式碼,但赫然發現裡面藏了一句莎士比亞經典名句.......
評論
評論

本文原刊於 合作媒體雷鋒網 ,INSIDE 授權轉載。

上週四,一位前 NASA 的實習生 Chris Garry 在 Github 上公開了「阿波羅 11 號」登月計劃電腦導引系統的程式碼,使得普通民眾也能一覽登月系統的內部邏輯。(只不過當年所用的程式碼,一般人可能看不太懂就是了)

其實,「阿波羅 11 號」登月計劃的程式碼早在 2003 年就被科技學者 Ron Burkey 公佈於眾,那時他不得不從一份原文的掃描版中人工將程式碼一行一行地敲入電腦,並上傳到網路。如下圖所示,照片右側一人高的紙上全是阿波羅 11 號登月的程式碼,你就可以想像 Ron Burkey 是多麼有毅力的一個人。除了上傳該程式碼,Ron Burkey 還根據自己對程式碼邏輯的理解,寫了一個阿波羅 11 號導引系統的模擬程式,關於該程式的影片大家可以 點這裡

5783499203778

可能由於分享工具的關係,當年程式碼上傳後並沒有被廣大的工程師看到(也可能當年的工程師數量比較少一點)。一直到上週四程式碼被上傳到 Github,這才引起了廣泛的關注和熱烈的討論。

經過火眼金睛的網友、工程師們的仔細研讀,不禁在程式碼中發現了許多有趣的段落,現摘錄如下。

1. 首先是在現代系統編程中被明令禁止的「魔鬼數字」(一般都要求在程式碼開頭用帶有明確意義的宏定義代替程序中出現的具體數字,否則會造成他人閱讀程序的障礙)。萬萬沒想到,堂堂大 NASA 登月計劃的程式碼中竟然隱藏了「魔鬼數字」,不禁令廣大的工程師朋友們咋舌。

578349b3d950e

2. 另外,阿波羅的工程師們在一段關於點火程序的注釋中,竟然講起了故事,是的,你沒有聽錯,是在講故事。詳細介紹了那句「Burn,Baby!Burn!」的由來。(大意是說這句話最先來自一位著名電台主持 Magnificent Montague,經他之手捧紅了一大批美國 Soul Music 歌曲)

578349c498262

3. 還有,阿波羅的工程師們非常貼心,還在程式碼的相關部分寫上了太空人此刻在進行登陸艇操作時的注意事項,比如「請展開登錄雷達」等。當然,這裡阿波羅的工程師用 the silly thing(蠢東西)代指了 landing radar(登錄雷達)。

578349d891846

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." 大義是說:「我要徑直向你們指出,你任用了許多人,讓他們大談什麼名詞啊,什麼動詞啊,以及這一類的可惡字眼,這都是任何一個基督徒的耳朵所不能忍受的」。

578349e3899cc

關於為什麼會在程式碼中出現這麼一段「莎翁名言」,有人猜測是因為 MIT(麻省理工)的科學家在構建登月程式碼時將許多程序指令預設成一個數字,然後通過這些「數字」來進行操作,比如「37」就代表「執行(Run program)」。然後下面執行編寫任務的工程師們不勝其煩,整天要查表才能知道這些數字究竟代表什麼意思,於是忍不住在程式碼中吐槽了一下。

現在,任何人都可以訪問 GitHub 來獲取阿波羅 11 號導引系統的源程式碼,感興趣的朋友們不妨去看看吧: 請點擊



精選熱門好工作

Backend 工程師

Omlet Arcade 美商歐姆雷特
臺北市.台灣

獎勵 NT$15,000

高階平台開發者 / Sr. Platform Developer

奔騰網路科技有限公司
臺北市.台灣

獎勵 NT$15,000

Growth Marketing Specialist

WeMo Scooter
臺北市.台灣

獎勵 NT$15,000