About
begin print (("Algol 68 strikes back!", newline))
end
Algol 68 was designed by the Working Group 2.1 of the International Federation for Information Processing (IFIP) during the late 1960s and early 1970s, led by Adriaan van Wijngaarden. The goal of the working group was to provide a programming language suitable to communicate algorithms, to execute them efficiently on a variety of different computers, and to aid in teaching them to students. The resulting language was in principle expected to be an evolved version of Algol 60, known shortcomings addressed, and generally improved.
However, what was initially supposed to be an improved version of Algol 60 turned out to be something very different: an extremely powerful programming language, more modern and more expressive than most programming languages today, whose design exercised almost to the limit the newly invented notion of orthogonality in programming languages.
The working group also invented and used a powerful notation known as two-level grammars (or van-Wijngaarden grammars) to express the syntax of the new language. This new mechanism allowed to incorporate into the syntax, and treat in a rigorous and systematic way, many aspects of the language that are usually considered as part of the semantics and therefore doomed to be treated in a rather imprecise way when using less powerful denotational mechanisms such as BNF. As a result, Algol 68 is better defined than most (if not all) other programming languages, and this is reflected in the quality of the overall design of the language.
Algol 68 in the XXI century
Interest in Algol 68 decayed back in the mid-seventies mostly due to the increasing popularity of simpler programming languages such as C and Pascal, that became commonplace then. It was also very challenging to write compilers for Algol 68 since the language was very demanding in abstractions. In fact, the early Algol 68 implementations had a profound impact in the development of compiler technologies, including garbage collection techniques among others. Surprisingly, many people got confused and believed that the complicated definition formalism in the Report was actually the programming language it described. This gave Algol 68 an undeserved reputation of being cryptic and difficult to learn. As it usually happens, this kind of uninformed FUD spread quickly, repeated (and believed) ad nauseam by people.
Eventually it was just widely assumed by everyone that Algol 68 was way ahead of its time and too complex... and it got forgotten.
However, recently there has been an increased interest on more complex and more elaborated languages, like Rust. Once again people seem to appreciate using complex tools to solve complex problems, and are willing to invest some effort in learning and mastering them, knowing well that the investment will pay back. Therefore, now it is perhaps finally the time for Algol 68, which is truly an unique programming language that allows to write programs in an unique, comfortable and addictive way.
Algol 68 is not like Algol 60, an important but old-fashioned programming language, superseded in almost every aspect by its successors, only relevant nowadays as a historical curiosity. Despite many people claiming otherwise, Algol 68 has no successors. Sure, it was tremendously influential and some keywords and concepts were adopted by later languages, such as C and the Bourne shell. But when concepts originating in Algol 68 were nominally adopted by other languages, they invariantly got decaffeinated and decontextualized due to the lack of the firm structural foundation of Algol 68. An example is the "cast" construction that got adopted by the C programming language: yes, it does something roughly similar to what Algol 68 casts do, but not quite: it is a simple Ersatz "cast" that relies on a bunch of ad-hoc rules, rather than the orthogonal armor of Algol 68's coercions and contexts.
The GNU Algol 68 Working Group
The GNU Algol 68 Working Group is a group of hackers whose purpose is to bring Algol 68 to the first line of programming and dispel the abundant myth and FUD surrounding it, to provide modern implementations of the language well integrated in today's operating systems and computers (like the GCC Algol 68 front-end), to produce documentation to help people to learn the language, and to maintain, extend and evolve the language with the rigor, respect and seriousness that it deserves and demands.
The GNU Algol 68 WG is not officially associated with the IFIP WG 2.1, which is still technically in charge of the language. Contacts have been attempted, without much success.
Learn more from the materials listed in the resources!