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