Could This Be The Year Of Algol?

Ok, you caught us. It certainly isn’t going to be the year of Algol. When you think of “old” programming languages, you usually think of FORTRAN and COBOL. You should also think of LISP. But only a few people will come up with Algol. While not a household name, it was highly influential, and now, GCC is on the verge of supporting it just like it supports other languages besides C and C++ these days.

Why bring an old language up to the forefront? We don’t know, but we still find it interesting. We doubt there’s a bunch of Algol code waiting to be ported, but you never know.

Algol first appeared in 1958 and was the lingua franca of academic computer discussions for decades. It was made to “fix” the problems with Fortran, and its influence is still felt today.

For example, Algol was the origin of “blocks of code,” which Algol set between begin/end pairs. The second version of Algol was where Backus-Naur form, or BNF, originated, something still of interest to language designers today.

Interestingly, the new compiler will do Algol 68, which was the final and not terribly popular version. It was sort of the “New Coke” of early computer languages, with many people asserting that Algol 60 was the last “real Algol.” Algol was known for sometimes using funny characters like ≡ and ⊂, but, like APL, had to adapt to more conventional character sets. Most of the Algol specifications didn’t define I/O, either, so it wasn’t enough to know Algol. You had to know which Algol so you could understand how the I/O worked.

If you want to learn Algol, there’s a tutorial on GitHub (use the compiler online, if you like). While [Niklaus Wirth] didn’t create Algol, he was a major player in some of its later development.

5 thoughts on “Could This Be The Year Of Algol?

  1. My first job at General Motors involved a CAD system called GDSII. It stood for Graphic Design System 2, originally created by GE.

    It ran on a Data General S-280 Eclipse, with 1M of RAM. Yet it supported four workstations and a terminal for admin purpose, while remaining fairly responsive. What they could do with such low resources back in the day!

    I remember one of the support people telling me the system was coded in ALGOL.

    The extension language was calle GPL, or Graphical Programming Language. I’ve never used APL, but I was told that GPL was at least similar, especially with regard to array/matrix handling.

    That sort of ties the languages mentioned above, ALGOl and APL together.

    I remember the system fondly.

  2. Algol is one of those obscure languages that has been in decline for over 30 years. (Over 40 years?) Apparently there is still some “historical interest” in it, but I assume there are good reasons for the decline. Why such a language is added to GCC is beyond me. Apparently there are CLANG versions for both AVR’s and Cortex-M. It seems to be a pretty mature compiler, but I don’t like the links to the fruit brand PC’s.

  3. I remember Algol was a major language in Burroughs mainframes that ran the MCP operating system (B-6000/7000 specially), and there were a variety of dialects available, plain Algol for normal programming and DC Algol for systems programming among them.

    DC Algol specially gave you quite a bit of control, enough to crash the entire system even from a common non-admin user account (don’t ask me how I know…)

  4. Algol was famously and accurately described as an improvement on most of its successors.

    Due to the limitations of compiler and computer technology, there were many variants each with a slightly different subset and purpose. That wasn’t particularly important at the time, since the concept of “porting code” was not high on the list of most peoples’ priorities.

    There is a decent case to be made that while Algol-60 deserves to be remembered as one of the triumvirate of languages (Algol, FORTRAN, COBOL), it was also an early example of the “second system effect”.

    Overall Algol has been as influential as another of its contemporaries, LISP.

  5. Ah, if I only had kept those 2000+ punched cards with my symbolic math interpreter from uni! It could differentiate and integrate expressions, simplify the results and use it for subsequent calculations. Written in ALGOL W and ran on the university’s IBM S/370 165 mainframe with, if I remember correctly, 1.5MB of memory and a scorching clock speed of 17MHz. 🤯

    Whew! 🫨

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.