Since the start of the new year, there have been patches being posted for proposing a new GCC compiler front-end for the half-century old Algol 68 programming language. Oracle engineer Jose Marchesi has been leading the Algol 68 effort for GCC and this weekend posted a new revision of the patches, which now includes a working modules system implementation.
Earlier in the year the Algol 68 front-end was deemed not ready for merging to the mainline GNU Compiler Collection codebase but it actively remains worked on by Marchesi and others. Following last month’s Algol 68 GCC update, a new revision was posted overnight.
Marchesi blogged that it’s believed this is the first time that a modules system has ever actually been implemented for the Algol 68 language:
“we have added a modules system based on the Modules and Separate Compilation Facility designed by Charles Lindsey and Hendrik Boom and released by the IFIP Working Group 2.1 Standing Subcommittee on ALGOL 68 Support. To our knowledge, this is the first time the modules facility ever gets implemented.”
The Algol 68 modules system is further described in the new patch series as:
“We have added a modules system to support separated compilation, based on the MR design, as well as many tests. Compilation units, or packets, are either particular programs or collections of modules. The publicized content of modules, which is stored in object files, shared objects, archives, or standalone files, can then be accessed from programs or other modules. See below for a little example. The modules system does not require any special support from system tools, nor it requires the usage of any specialized build system or linker.”
The v6 front-end patches are now out on the mailing list along with a symbol mangling schema added, Autoconf accepted its Algol 68 support upstream, diagnostic improvements, and various other improvements.
Lastly for those wanting an Algol 68 code sample for those not familiar with this aging programming language:
We’ll see if this new language front-end manages to make it into the GCC 16 compiler release or if it will continue going out-of-tree.
