Skip to content

Releases: rochus-keller/Algol60

MVP release of AIR and the Algol60 compiler

Choose a tag to compare

@rochus-keller rochus-keller released this 10 Oct 10:07

The compiler now works sufficiently well for an MVP release.

I added the working subset of the test code I collected over the years so interested folks have something to experiment with, among it a few versions of the famous Man or boy test by Knuth; but note that the default stack of the integrated LuaJIT VM only supports k=12; if you want the original k=15, then LuaJIT has to be recompiled with at least LUAI_MAXSTACK=1048576.

It is essentially a proof of concept of the Algol Intermediate Representation (AIR) which is essentially a version of MIL which I developed for my Micron compiler, but limited to the features of the Algol/Wirth language lineage and on a lowering level compatible with LuaJIT bytecode. The latter is again integrated using my LjTools, which I implemented for my earlier Oberon and Luon compilers. And it is an important achievement on my way to a complete and working Simula compiler with coroutines and simulation features.

There are precompiled versions for Linux x86_64 and Windows x86. If you want to build and explore the code yourself, there is a BUSY and a qmake version of the build, with instructions in the Readme.

You can test the compiler e.g. with ./algc testcases/marst/examples/manorboy.alg and should see the following output:

0 
-2 
0 
1 
0 
1 
-1 
-10 
-30 
-67 
-138 
-291