Algol 68 (ALGOrithmic Language) is a high-level programming language designed for general use. It was first approved for publication by the General Assembly of IFIP in December 1968, whence it got its name.

Early in its history, the language got a bad name because people confused the defining document with the language itself: they thought that because the defining document was difficult to read, the language must be difficult to use. This is definitely not the case. On the contrary, the language lacks many of the features of other languages such as C or C++ which make them difficult to learn.

Books on Algol 68

A number of books have been published about Algol 68, but most of them are now out of print. However, the book, Programming Algol 68 Made Easy, has been converted to HTML.

The book teaches the language from scratch, but is geared to the variant of the language provided by the Algol68toC translator.

Esperanta versio de Programado kun Algol 68 Farita Facila

Esperantigitan version de la libro Programming Algol 68 Made Easy mi verkas nuntempe. Kiam ĝi estos preta, ĝi aperos en ĉi tiu retejo. La Esperanta versio estos iom malsama: ĝi pritraktos la Teksaĵon 68 sistemon kiu liveras evoluigan sferon kiu faciligas la evoluigon de Algol 68 programoj. Kelkaj antaŭludoj ankaŭ estos traktataj en la libro. La libro havos ĉiujn informojn necesajn por programi uzante Algol 68.

Algol 68 on Linux

Algol 68 has been available on Linux for some time. Now there are two Algol 68 compilers:

  1. Algol 68g
  2. algol68toc

Algol 68g

Algol 68g is a compiler which compiles a complete program into memory and then interprets it with the Genie interpreter. It implements almost all of the language including formats and parallel programming. It can access the GNU scientific library and the GNU plotting utility library as well as the PostgreSQL libpq library. The latest version is available as a Debian package.


Several years ago, I ported the DRA compiler to Debian GNU/Linux 2.2, but it is now working on sid. The package is called algol68toc and is currently at version 1.17. I've been testing the package on the sid distribution. If you have a Debian GNU/Linux system or a Ubuntu system, all you need is the Debian binary package. I recommend downloading the 1.18 version of the Debian package from here. Note that it is for 32-bit Linux. Work on a 64-bit version is in progress.

The package contains the following:

Algol 68 compiler outputting C source.
Program for compiling modules.
Program for resetting the nameseed.
Unicode regular expression searching tool.
Web 68 preprocessor.
Static library: run-time memory management
Static library: standard prelude
mandatory primary segment
include headers
Book about Algol 68
Programming Algol 68 Made Easy in DVI format.
Man pages
Provided for a68toc(1). HTML pages for ca and tang.
Module information file for the standard prelude
Test programs

The standard prelude includes the transput which is high-level and powerful. No formats (the translator doesn't support them). On the other hand, you will get the following channels:

stand in channel
buffered byte stream
stand out channel
buffered byte stream
stand back channel
for connection to disk files
arg channel
to access program arguments
env channel
to access environment strings (read-only)
kbd channel
unechoed input from the keyboard
mem channel
to access a memory buffer
server socket channel
both af unix and af inet
client socket channel
both af unix and af inet

Further information about Algol 68

Greg Nunan's web page gives more information about Algol 68.

Current work

I am currently working on the following:

64-bit version
Porting the Algol 68 compiler to 64-bit Linux is occupying my time. Until this is done, no further progress on numerous projects will happen.

This web page was prepared with Epsilon 13.12 by Sian Mounbatten on 2013/06/21 17:53:00.