On 16/02/2025 04:24, Steve Lewis via cctalk wrote:
I'm not very familiar with ALGOL, but just today I
met someone at VCF who
has essentially built a replica of the LGP-30 (in FPGA form, more on that
to come down the road, but it is a system from 1955/1956). Then related to
that, two different people mentioned to me of an early ALGOL compiler being
available for the LGP-30. I don't know if that was of a form to be
considered any kind of "block structure" as you mentioned.
I had the impression from talking to people (quite possibly Tony Hoare,
but I don't want to put words in his mouth) that Algol was not,
initially, a programming language - it was a structured English to
express algorithms. As such it was natural for academics to try and make
their computers understand it, whether it was practical or not.
This is relying on my memory of conversations that took place decades
ago, and the opinion of whoever I was as taking to. But it does fit the
evidence. Firstly there were multiple dialects of Algol - just like
things like UML. It didn't crystallise until Algol 60 (and then only
loosely). Secondly, at the time it first showed up there wasn't a
computer available with the power to run it. As people have pointed out,
there were instances of people implementing subsets on machines with a
drum store. Pioneering stuff indeed.
Without evidence otherwise, I believe all of these student Algol
implementations to be interesting research rather than practical high
level languages. I'd be happy to hear of any evidence otherwise - in
other words third-parties using them from real-world application
programming.
As to the Librascope Algol 30 written it Dartmouth, I'm sure it was
wasn't a full implementation. It probably did include BEGIN/END (I'd
love to see some examples) but there was a lot of stuff that was very
tricky to implement and most "tiny Algol" implementations missed most of
it off.
Incidentally, I'm very sure that Algol 58 was the first language to
implement the BEGIN...END structure. The DO element was also new, but
dropped (and the keyword repurposed) in Algol 60. Otherwise 58 was a
subset of 60.