Search code examples
assemblylispprogramming-languages

Why was the software for Apollo missions written in assembly and not in a high level programming language?


According to this article and answers to this question, the software that was used for the Apollo 11 mission, that landed the first man on the Moon, was written in assembly.

I find this quite shocking, since the project started in 1960 and the mission took place in 1969. By this time already several high level programming languages were available. For example Lisp, which is a fairly high level language, even with garbage collecting and that is still in use today.

Given the assumption that garbage-collected high level languages reduce the potential for human error in programming and the high risk aversion of the authorities, why did the managers allow for such a tremendous hazard?


Solution

  • If you look at the hardware specifications (2 K RAM, 36 K hard wired memory) only manually crafted assembly language is efficient enough to do anything useful. A high level language compiler usually generates a lot of superfluous code and inefficient memory handling because it is general purpose. The software in Apollo 11 was very specific and testing several KBytes of code properly should be doable given the preparation time.