16 comments

[ 19.5 ms ] story [ 261 ms ] thread
> The same code fragment could be written in multiple-line format as:

> E 2 2

> M X = A + B

> S I

Being able to write expressions that span multiple lines like that is really quite cool.

It would be so great if we could write mathematical expressions such as

  y := x²
in regular code. Is this the case in any modern language?
Wolfram Mathematica allows for this and perhaps you can do this in Haskell with some advanced trickery.
If I recall Guy Steele's (discontinued) Fortress scientific programming language was supposed to be like this. It was designed to have "syntactic stylesheets" and was meant to be rendered out into LaTeX, Unicode, etc. and the goal was to have some common mathematical notation in the syntax and also to make the syntax look a bit like the pseudocode that often appears in scientific and research papers.

https://web.archive.org/web/20160304052722/https://java.net/...

The EMS notation looks exactly like the language and compiler Hal Laning made for the Whirlwind in the '50s, which was the first compiler ever, anywhere.

Hal Laning was also personally responsible for Apollo 11 not crashing and exploding when operator error caused overloading of the Apollo Guidance Computer, resulting in system crashes several times during the landing. It reset, each time, and picked up the high-priority processes where they left off.

Laning was every year passed over for the Turing Award he so richly deserved.

Grace Hopper implemented the first and coined the term. https://en.m.wikipedia.org/wiki/History_of_compiler_construc...
Except, that wasn't at all what we call a compiler; she just used the name compiler for something that clearly was not. Admittedly, she was first to use the name, but word coinage is not a thing we recognize as a fundamental achievement. Hal didn't call his thing a "compiler", but it clearly was one, by the modern definition.

(Its output was subroutine calls, but that is a matter for optimization. When your compiler has to fit in 1K machine words, you make compromises.)

I would encourage to update the Wikipedia page accordingly.
In English "to compile" is defined as "produce (something, especially a list, report, or book) by assembling information collected from other sources." which seems like a good description of what A0 to A2 did.

It is a pity that when people started to build translators they didn't use that name but instead kept the now obsolete term "compiler".

Look up "etymological fallacy".

Words don't have a "true meaning" independent of how they are used.

I don’t think it’s a particularly accurate or fair simplification to say that overload during Apollo 11 was due to operator error.

The rendezvous radar was intended to be enabled during landing to be prepared for an abort. It only caused problems due to a hardware bug in the interface between the radar and the LGC which caused something similar to an interrupt storm. Grumman and MIT had both discovered this bug prior to Apollo 11 but decided not to fix it.

source: various publications by don eyles

also, the waypoint-based restart protection used in AGC software to handle power failures and the decision to reuse that mechanism for handling running out of core sets or VAC areas was due to charley muntz, not hal laning.

But regardless I agree Laning deserves more recognition for his numerous contributions.

As I understood it, the checklist said the switch was to be off during landing, such that landing simulations with it on had not been attempted. Not sure if mission control knew it was on.

Charlie Muntz was certainly deeply involved, as was Don, in ensuring and verifying that failures would be recoverable. I think Muntz coded the interpreter much of the landing was coded in; Laning, the priority-based executive monitor Charlie and Don coded to.

I am always amazed how, given such a slow base machine, it was so conventional to run an interpreter and then write actual programs to the interpreter. Apparently the space needed for the interpreter was more than made up by the more-compact code used to drive it, and the slowdown was tolerable.

(comment deleted)