11

On SE Space Exploration, one of the answers to this question, Fortran and the Apollo 11 mission states that the MAC-360 language, developed around 1967 by Hal Laning, was used to do develop simulations for the Apollo program that were run on an IBM 360 Model 75 computer.

In reference to the language, the answer states,

It resembled Fortran in being mostly about mathematical calculations. It had a 3-line format for representing vector and matrix calculations.

The web link for MAC-360 in the question became dysfunctional due to link rot. I managed to replace with an online dictionary entry, but it is terse. So far it is the only reference to MAC-360 that I have been able to find. Does anyone know of any other information, preferably more expansive that I have found, about MAC-360?

3

1 Answer 1

11

An interview with an Apollo Guidance Computer programmer is on-line, and provides some definite information.

It says the guidance software was written in MAC (MIT Algebraic Compiler). MAC-360 would be a very normal name for a MAC implementation for the IBM 360 at the time. The HAL/S language, used in the Space Shuttle computers, is an improved version of MAC. Hal Laning initiated the development of MAC, and HAL/S is named after him.

There's apparently an error in the interview, in that the Lunar Module simulator is described as running on an IBM 360/175, and there doesn't appear to have ever been a 360 or 370 model 175. I suspect it should be a 360/75, which did exist, was fairly new at the time, and matches the question.

The MAC code is described as being hand-compiled, without any clarity as to if that was for the AGC or the IBM.

MIT's Project MAC doesn't seem to be connected to the MAC language, which appears to have been developed at the MIT Draper Lab, a separate organisation, which also designed and programmed the Apollo Guidance Computer. The Wikipedia article on that says:

The AGC had a sophisticated software interpreter, developed by the MIT Instrumentation Laboratory, that implemented a virtual machine with more complex and capable pseudo-instructions than the native AGC. These instructions simplified the navigational programs. Interpreted code, which featured double precision trigonometric, scalar and vector arithmetic (16 and 24-bit), even an MXV (matrix × vector) instruction, could be mixed with native AGC code.

Aha! That interpreter is presumably the target for the MAC code, since MAC is designed to express those kinds of operation. That also makes sense of various statements about the AGC being programmed in assembly language, with a very small instruction set that does not seem adequate for MAC's mathematical operations. It also reconciles the interview's statement about the MAC code for the AGC being a printout about 4cm thick, with the picture of Margret Hamilton, software lead for the AGC, standing next to a stack of print-outs that's at least 1.5m thick.

That's a start, anyway.

(And here it is briefly mentioned in the paper A review of two-dimensional programming languages (Wells, ACM SIGPLAN Notices v7#10, October 1972) - see page 5, also the table page 8 - with an example of the 3-line expression syntax (that's the diagram, middle of page 5).)

1
  • 3
    I think I remember that the NASA center in Cambridge had a 360/75.
    – John Doty
    Commented Dec 23, 2022 at 20:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .