Algol 68 Revitalised and Now In GCC |
Written by Mike James | |||
Wednesday, 29 January 2025 | |||
The latest addition to the GNU Compiler Collection is Algol 68 and you can be forgiven for thinking it sounds like a blast from the past. However, you need to remember that ALGOL, standing for ALGOrihtmic Programming Language is the progenitor of almost all the languages in common use today and may still have more to teach us. The GCC, (GNU Compiler Collection) is the "standard" compiler set for Linux. It is standard in the sense that Linux itself is compiled using it. Originating with just C in 1987, which its name was GNU C Compiler, it added C++ in the same year to be joined subsequently by Objective-C, Fortran, Ada and Go. We reported on D being added in 2017 and, more recently, Rust in 2022. You might expect that only new languages would be admitted to this exclusive club, so the news that Algol 68 has joined comes as a surprise. In his announcement of the availability of the Algol 68 GCE Front End, Jose Marchesi wrote: This WIP is a GCC front-end for Algol 68, the fascinating, generally poorly understood and often vilified programming language. It is common knowledge that Algol 68 was well ahead of its time back when it was introduced, and anyone who knows the language well will suspect this probably still holds true today, but more than fifty years after the publication of the Revised Report the world may finally be ready for it, or perhaps not, we shall see ;) At the very least having support in GCC will make it easier for Algol 68 enthusiasts to write, share and use their programs in modern systems. Marchesi credits Algol 68 Genie, an open-source modern implementation of ALGOL68 authored and maintained by Marcel van der Veer for the parser for the new front-end. Why expend so much effort on a language that dates back to the 1950s? The simple answer is almost every programming language in use today owes something of its design to ALGOL, standing for ALGOrithmic Programming Language. Although the first definition of the language, Algol 58, was a breakthrough and a tour de force of computer science, it was never implemented - it was too difficult. It took an international committee to move to a practical implementation. Pioneers in the development of the ALGOL programming language. (clockwise from top left) Heinz Rutishauser, Peter Naur, Friedrich L. Bauer, Adriaan van Wijngaarden. The stated aim of this committee was to create a language that met the following objectives:
What is hidden by these simple objectives is the fact that ALGOL was, and is, an academic's language. The committee made no serious attempt to make the language simple or easy to understand. Algol 60, the first implementation to be used, was extremely limited and as a result there were several rival proposals to modernize the language. One came from Niklaus Wirth. When his proposal was rejected he developed it into his own language, Pascal, which he later refined into Modula. Instead, the ALGOL committee went with a more elaborate proposal led by Adriaan van Wijngaarden, which became Algol 68. While Algol 68 found some popularity in specific areas, particularly in the United Kingdom on ICL machines and in teaching environments, its adoption was relatively limited. As well as the language's definition being incredibly complex, making it difficult to implement compilers, its documentation was notoriously difficult to understand and it suffered from a lack of marketing and support and soon fell out of use. ALGOL did however have an enduring impact on the development of later languages. It was block-structured and stack-based features that were passed on to C, C++, C#, Java, JavaScript and so on. It introduced many of the ideas we take for granted today - such as the distinction between assignment := and equality =, the use of the three-part for loop for index:=start increment limit and nested procedures with local scope definitions. The Algol 68 Genie project preserves Algol 68 out of educational as well as scientific-historical interest, by making available a recent implementation written from scratch, together with extensive documentation for both the language and this new implementation. More InformationRelated ArticlesHistory of Computer Languages - the classical decade, 1950s Computer Languages by Committee - the 1960s Niklaus Wirth Inventor Of Pascal Dies At Age 89 To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.
Comments
or email your comment to: comments@i-programmer.info |
|||
Last Updated ( Wednesday, 29 January 2025 ) |