GitHub - coolbikerdad/Algol-68RS-Source: The RSRE Algol-68RS Compiler. An update of the original port by Sian Mountbatten of a68toc (ctrans) from Algol-68RS/ELLA2000 updated to run on Intel and ARM processors (32- and 64-bit) Linux and macOS systems. (original) (raw)

          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