1
本文作者: 恒亮 | 2016-07-11 15:18 |
上周四,一位前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
雷峰网原创文章,未经授权禁止转载。详情见转载须知。