On Feb 16, 2025, at 9:46 AM, Frank Leonhardt via
cctalk <cctalk(a)classiccmp.org> wrote:
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.
My father (a metrologist and professor of mechanical engineering) would read ALGOL
programs written by others, based on their resemblance to English. And yes, it was for
years the choice for expressing algorithms in journals such as CACM. The fashion of
rendering keywords as bold text fits that usage very well.
On the other hand, it's clear that, at least starting with ALGOL 60, we're dealing
with a programming language meant to be run on actual computers, and if there was any
doubt about that the work of Dijkstra et al. should settle the question.
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.
If a language doesn't have blocks (whether with begin/end keywords or something
equivalent, as ALGOL 68 allows) it can't reasonably be called ALGOL or even a subset.
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.
Well, "ALGOL 58" is not a thing. The document describing the 1958 language
called it "International Algebraic Language". I only glanced at it -- the first
time I saw an actual description is when I read the 1958 report in an appendix of
Gauthier's thesis -- but my memory is that it can't be thought of as a subset of
Algol 60 but rather a dead end relative that went off in a wrong direction that the 1960
report abandoned.
paul