The latest language in the GNU Compiler Collection: Algol-68
That is not dead which can eternal lie… including the grandparent of C, apparently
A 37-year-old compiler is gaining support for a new language… although as that language is 57 years old, we are possibly stretching the adjective "new" more than our post-holiday waistband.
An unexpected announcement came along at the start of 2025: the addition of another new language to the GCC suite. Well, we say "new", but that is debatable: the code is new, but the language in question was announced 57 years ago: the work-in-progress project is a front-end for ALGOL-68, by Oracle staffer Jose E Marchesi.
When Richard Stallman announced GCC in 1987, its initials stood for the "GNU C Compiler", but by December that year, version 1.15.3 included g++
, support for C++. Now the GCC initialism stands for the GNU Compiler Collection, and the toolchain can also compile Ada, D, Go, Objective-C, and other languages. A few years ago, we wrote about the addition of support for Modula-2. Among these is Fortran, which means that Algol-68 isn't the oldest language in GCC.
Marchesi gives credit to an existing project for the parser for the new front-end. That project is an interpreter for ALGOL-68 called the Algol 68 Genie by Marcel van der Veer.
In all honesty, this vulture can't remember what he was doing when ALGOL-68 came out, but he was probably learning to roll over onto his tummy or eat solid foods. In case you are equally unfamiliar with ALGOL, it's a seminal early programming language, but this isn't the most influential version. That was arguably the classic ALGOL-60, which The Register looked at way back in 2020.
- Verity Stob's Edsger Dijkstra tribute
- The case for handcrafted software in a mass-produced world
- The wild world of non-C operating systems
- Drowning in code: The ever-growing problem of ever-growing codebases
Unless you're a specialist in this stuff, almost every programming language you've ever heard of owes something of its design to ALGOL-60. ALGOL is the language that introduced the idea of structuring program code in marked blocks, which it delimited with the words begin
and end
. This had made it more influential than its contemporaries, Fortran, Lisp and COBOL; as a result, more or less all other imperative programming languages since can be described as Algol-like languages. This includes BASIC, C, and pretty much every other curly-bracket language. It covers the range from B to Zonnon.
ALGOL-60 was extremely limited, though, and as a result there were several rival proposals to modernize the language. One was by a young Swiss computer scientist, the late Niklaus "Bucky" Wirth. His proposal was rejected, so instead, he developed it into his own language, Pascal, which in turn he refined into Modula, Modula-2, and finally Oberon. Instead, the ALGOL committee went with a more elaborate proposal led by Adriaan van Wijngaarden, which became ALGOL-68… and which pretty much killed everyone's interest in ALGOL. The result, though, was a flowering of different languages throughout the following decade or two.
That is the form of ALGOL that may soon be coming to GCC. We suspect that it won't lead to a great deal of new development in ALGOL, but even if it remains a little-used optional extra, it has great educational and historical interest. ®