What programming languages were used to go to the

2019-03-12 02:44发布

问题:

I have always wondered: what programming languages were used to go to the moon? I realize there may not be a single answer/language, but it interests me.

How many people worked on the code for these systems? How was it tested?

回答1:

Not a full answer, but a bit more info:

"The on-board Apollo Guidance Computer (AGC) was about 1 cubic foot with 2K of 16-bit RAM and 36K of hard-wired core-rope memory with copper wires threaded or not threaded through tiny magnetic cores. The 16-bit words were generally 14 bits of data (or two op-codes), 1 sign bit, and 1 parity bit. The cycle time was 11.7 micro-seconds. Programming was done in assembly language and in an interpretive language, in reverse Polish."

http://www.hq.nasa.gov/alsj/a11/a11.1201-fm.html

Added: the BBC has recently published a wonderful article about the AGC including interviews with the designers, and with the "little old ladies" who wove the "rope core." It doesn't cover how the software was designed, coded or tested, but you'll probably find it interesting all the same!

Additionally, the source code for the main and landing modules can be found here



回答2:

The Apollo Guidance Computer was programmed in assembly language.



回答3:

Source code for the Apollo 11 Guidance Computer



回答4:

Not exactly the Moon, but Lisping at JPL.



回答5:

I remember reading that the exact same software was written by (at least) two different disjoint teams. The computers would then compare their answers together and check for any discrepancies... not sure what it would do if it found any, but at least they would know there was a problem. I think they used four different computers actually, and took the majority vote, so if one computer was wrong, it was ignored.



回答6:

From "Digitial Apollo Human and Machine in Spaceflight" by David A. Mindell, MIT Press (C) 2008

pg. 149

Apollo's software derived from the basic design of the Mars mission. Designer Hugh-Blair Smith created a language called "Basic", a low-level assmelby language of about forty instructions (distince from the hgigh-level BASIC programming language developed at Dartmouth at about the same time). On top of BASIC was "Interpreter," brainchild of Hal Laning, a language that was really a collection of routines to do the higher-level mathematical functions associated with gudance and control, in the high precision data format.