1- The Debian Package a68toc
2- -------------------------
1+ The Algol-68RS Compiler ( a68toc)
2+ --------------------------------
33
4- This is the Linux port of the A68toC Algol 68 development system. It
5- was extracted from the ELLA package which is used for VLSI chip
6- design.
4+ This is the A68toC Algol 68 development system. It was extracted from
5+ the ELLA package which is used for VLSI chip design.
76
8- The compiler front-end is essentially the Algol 68 RS portable
7+ This repository contains a version of a68toc derived from a Linux
8+ port of a68toc by Sian Mountbatten. See README.Sian for more.
9+
10+ The compiler front-end is essentially the Algol-68RS portable
911compiler originally written by the Defence Research Agency when it
1012was known as the RSRE (Royal Signals and Radar Establishment). Only
11- that part of Algol 68 needed for the ELLA compiler was implemented by
13+ that part of Algol- 68 needed for the ELLA compiler was implemented by
1214the `a68toc' translator with the result that formats are unavailable
1315and are likely to remain unavailable for the foreseeable future. The
1416`PAR' construct, for parallel programming, with the associated mode
@@ -20,73 +22,34 @@ clear that the library preludes provided by the ELLA team were
2022entirely unsatisfactory for the general user, not least because they
2123were almost completely without documentation (see ctrans.texi).
2224
23- It was decided to write a Standard Prelude which would conform, as
24- closely as possible, to the Standard Prelude described in the `Revised
25- Report on the Algorithmic Language ALGOL 68' (see the bibliography of
26- the book `Programming Algol 68 Made Easy').
27-
28- In view of the amount of time it would take to create such a prelude,
29- it was decided to adapt the Standard Prelude written for the Algol 68
30- compiler marketed by Oxford and Cambridge Compilers Limited (OCCL).
31- Only the transput of that prelude would need to be used, more or less
32- in its entirety. (In fact, some of the numerical routines were also
33- used.)
34-
35- The only other possibility would have been to implement the van Vliet
36- Transput Model (as described in "ALGOL 68 TRANSPUT" by J.C.van Vliet.
37- "Part II AN IMPLEMENTATION MODEL" gives the source code). It was felt
38- that this full implementation of Algol 68 transput would require
39- rather more time than the author felt she could give.
40-
41- In the event, the "Quick and Dirty" (QAD) implementation of the new
42- Standard Prelude lasted, not three weeks as the author originally
43- thought, but 7 months and the documentation thereof a further 7
44- months. What with other commitments, the project has taken a full
45- year to complete.
46-
4725The QAD Standard Prelude given here (in sub-directory qad)
48- uses the conversion routines from the van Vliet Transput Model as
49- well as the source code for `put' and `get' suitably adapted.
50-
51- The availability of the `STRAIGHT' operator in the a68toc Algol 68
52- compiler meant that some of the modes in the OCCL definition of
53- `SIMPLIN/SIMPLOUT' could be removed. While it is true that `STRAIGHT'
54- will straighten any multiple, a quick attempt to remove all multiples
55- except `STRING' was unsuccessful.
56-
57- The package was originally uploaded to
58- <vestein.arb-phys.uni-dortmund.de>
59- as ctrans_1.0.0.tar.gz, but it was always the intention of the author
60- to upload as a Debian package.
26+ uses the conversion routines from the van Vliet Transput Model of
27+ transput.
6128
6229This version of the translator dispenses with the module manager `mm' and,
6330instead, uses `ca' to create preludes and programs.
6431
65- A few extra files have been added to the port:-
32+ Starting from Dr Mountbatten's Linux port (labelled as v1.15) this
33+ package has been enhanced with bug-fixes and has machine-specific
34+ dependencies resolved. The result is a sequence of new versions,
35+ starting at v1.20 (a v1.19 version was previously known to exist
36+ but the author has not been able to locate it).
37+
38+ The current branch of a68toc now compiles, runs, and self-compiles
39+ on little-endian CPUs (Intel/AMD) and big-endian CPUs (ARM) in
40+ both 32-bit and 64-bit forms on the Linux operating system
41+ and on Intel 64-bit on macOS.
42+
43+ Support for macOS has been made possible by the integration of the
44+ Boehm-Demers-Weiser Garbage Collector (bdwgc), a version of which
45+ is contained in this repository, and is a compile-time option for
46+ the Linux variants, being set as the default for all 64-bit systems.
6647
67- (1) The following two files enable Algol 68 source files to be
68- printed with some lexical highlighting, provided that `a2ps' is used
69- (see the Debian package of that name):-
70- algol68.ssh -- a style sheet for `a2ps'
71- sheets.entry-- an entry for the file /usr/share/a2ps/sheets/sheets.map
72- for `a2ps'
48+ Further example programs have been added to this repository including
49+ some from Glyn Webster; see the examples folder.
7350
74- Lastly, I am actively using this port and have already created the following
75- preludes:-
76- regular expressions
77- Unicode regular expressions
78- string operators, sorting and the binary chop
79- system facilities:-
80- execve, fork, exec piped child, system
81- getpid et al
82- stat, fstat, lstat
83- directory scanning
84- time routines
85- Xforms library binding
51+ Neil Matthew
52+ neil@tilde.co.uk
53+ May 2021
8654
87- If any of these interest you, then do send me email.
8855
89- Dr Sian Mountbatten Thu Sep 13 18:00:00 +0100 2012
90- Inverness
91- Scotland
92- <poenikatu@fastmail.co.uk>
0 commit comments