Question about ga68
Jose E. Marchesi
jemarch@gnu.org
Tue Jan 13 00:26:42 GMT 2026
Hello Gilberto, and welcome :)
> Dear GNU Algol working group,
>
>
>
> My name is Gilberto Alexandre and I a am writing to you in connection
> with Algol 68. I just recently got interested in Algol 68 and started
> learning Algol 68 Genie on my own. I then found out about the GNU
> Algol, ga68, which I then installed in my computer and started
> playing with it (the compiler works fine). Soon after installing I
> noticed that programs that work in Algol 68 Genie do not work when
> using ga68 and vice-versa.
>
>
>
> I tried to go thru all that there is in terms of information
> available and got nowhere in relation to this difference. In this
> regard, could you, please, point me in the right direction? I mean is
> there a document or web page where I can learn about the differences
> between these two compilers, difference in sintax (if any), etc?
There are five main differences to note:
1. The ga68 compiler supports UPPER stropping, which is the stropping
regime used by default by Algol 68 Genie. This is the regime where
you type bold words in all-caps, like BEGIN or IF. But to use this
stropping you need to pass the option -fstropping=upper to ga68,
because...
2. We designed a new stropping regime with a "modern" feeling for GNU
Algol 68. It is called SUPPER stropping, and is the default in ga68.
You can see an example of a real-life program written using SUPPER
stropping at https://git.sr.ht/~jemarch/godcc.
3. Algol 68 Genie implements a few extensions to Algol 68 that we do not
implement. We also implement some extensions (GNU extensions) that
Algol 68 Genie doesn't implement.
4. Algol 68 Genie implements the standard transput prelude. This is
the put, get, print, etc routines. ga68 implements a simpler POSIX
prelude with I/O primitives like getc, puts, etc. To print something
to the standard output, use puts ("hello'n") for example. We are in
the process of implementing something like the standard transput on
top of the lower-level POSIX prelude.
5. GCC implements the Algol 68 modules system. This means you can write
particular programs in .a68 source files, but also modules. And you
can build libraries in shared objects.
For a description of the options, GNU extensions, modules system, and
more, you can read the WIP manual at
https://gcc.gnu.org/onlinedocs/ga68.
So, if you have a program that works in Genie, you can try to:
1. Compile it with ga68 passing -fstropping=upper
2. Change the transput calls to use puts, gets, etc.
You may also consider to switch your programs to use SUPPER stropping.
Please let us know if you need any help!
>
>
>
> Best regards,
>
> Gilberto Alexandre
>
>
>
> P.S. Congratulation on the initiative and all the best in this
> endeavor!
Thanks!
More information about the Algol68
mailing list