		      The Algol-68RS Compiler (a68toc)
		      --------------------------------

This is the A68toC Algol 68 development system. It was extracted from
the ELLA package which is used for VLSI chip design.

This repository contains a version of a68toc derived from a Linux
port of a68toc by Sian Mountbatten. See README.Sian for more.

The compiler front-end is essentially the Algol-68RS portable
compiler originally written by the Defence Research Agency when it
was known as the RSRE (Royal Signals and Radar Establishment). Only
that part of Algol-68 needed for the ELLA compiler was implemented by
the `a68toc' translator with the result that formats are unavailable
and are likely to remain unavailable for the foreseeable future. The
`PAR' construct, for parallel programming, with the associated mode
`SEMA' and the operators `LEVEL', `UP' and `DOWN' never were part of
the Algol 68 RS compiler.

After extracting the A68toC system from the ELLA package, it became
clear that the library preludes provided by the ELLA team were
entirely unsatisfactory for the general user, not least because they
were almost completely without documentation (see ctrans.texi).

The QAD Standard Prelude given here (in sub-directory qad)
uses the conversion routines from the van Vliet Transput Model of
transput.

This version of the translator dispenses with the module manager `mm' and,
instead, uses `ca' to create preludes and programs.

Starting from Dr Mountbatten's Linux port (labelled as v1.15) this
package has been enhanced with bug-fixes and has machine-specific
dependencies resolved. The result is a sequence of new versions,
starting at v1.20 (a v1.19 version was previously known to exist
but the author has not been able to locate it).

The current branch of a68toc now compiles, runs, and self-compiles
on little-endian CPUs (Intel/AMD) and big-endian CPUs (ARM) in
both 32-bit and 64-bit forms on the Linux operating system
and on Intel 64-bit on macOS.

Support for macOS has been made possible by the integration of the
Boehm-Demers-Weiser Garbage Collector (bdwgc), a version of which
is contained in this repository, and is a compile-time option for
the Linux variants, being set as the default for all 64-bit systems.

Further example programs have been added to this repository including
some from Glyn Webster; see the examples folder.

Neil Matthew
neil@tilde.co.uk
May 2021


