Skip to content

Commit 6022b6a

Browse files
author
Neil Matthew
committed
Updated README
1 parent 82772a0 commit 6022b6a

File tree

2 files changed

+191
-0
lines changed

2 files changed

+191
-0
lines changed

README.md

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# Algol-68RS-for-Linux
2+
The Algol-68RS Compiler in its Ctrans form (a68toc) for Linux 32-bit/64-bit on Intel and ARM
3+
4+
Algol-68RS Build Notes for Debian Linux and derivatives
5+
-------------------------------------------------------
6+
7+
Installation dependencies and packages that provide them:
8+
9+
fakeroot: fakeroot
10+
make: make
11+
ld, ar, ranlib: binutils
12+
gcc: gcc
13+
makeinfo, texindex: texinfo
14+
tex, texindex: texlive
15+
latex: texlive-latex-base
16+
install-info: install-info
17+
dpkg-buildpackage: dpkg-dev debhelper
18+
libc6-dev: linux-libc-dev
19+
info: info
20+
ldconfig, cp, mv, rm, find, sh, tar: <installed by default>
21+
22+
Install these original dependencies:
23+
24+
$ sudo apt install fakeroot make binutils gcc texinfo texlive texlive-latex-base install-info dpkg-dev debhelper linux-libc-dev info
25+
26+
To build, run
27+
28+
$ export A68_NAMESEED=nameseed
29+
$ make dist-clean
30+
$ make
31+
32+
This will make a first-stage algol68toc from already-translated .c files.
33+
To build a self-hosted compiler, use the first-stage compiler to translate the .a68 source files to new .c files
34+
35+
$ make Translate
36+
37+
Build a second-stage compiler from the .c files made from the first-stage compiler
38+
39+
$ make dist-clean
40+
$ make
41+
42+
The resulting algol68toc is a compiler built with sources it made for itself.
43+
For absolute assurance of self-hosting, you can translate and re-build again and verify output files are identical.
44+
45+
To read generated documentation a dvi reader is needed, such as xdvi, installed with texlive
46+
47+
Install the resulting complier, examples, documentation, utilities and libraries.
48+
49+
$ sudo make install
50+
51+
This will install the following:
52+
53+
/usr/share/algol68toc/
54+
Afirst.o
55+
a68config.m
56+
standard.m
57+
Algol68.mk
58+
/usr/share/doc/algol68toc/
59+
rscompiler.dvi.gz
60+
ctrans.dvi.gz
61+
compl.taylour
62+
star.txt
63+
pame/*
64+
lf.a68
65+
test.lf
66+
algol68.ssh
67+
sheets.entry
68+
examples/*
69+
Programming Algol 68 Made Easy.pdf
70+
The RS Compiler for ALGOL 68.pdf
71+
/usr/share/info/ctrans.info.gz
72+
/usr/share/man/man1/a68toc.1.gz
73+
ca.1.gz
74+
resetseed.1.gz
75+
/usr/share/applications/a68toc.desktop
76+
/usr/include/algol68/*
77+
/usr/lib/liba68.a
78+
liba68s.a
79+
/usr/bin/a68toc
80+
resetseed
81+
ca
82+
83+
Compile a test program with
84+
85+
$ cd examples
86+
$ ca Abundant_odd_numbers.a68
87+
$ ./Abundant_odd_numbers
88+
89+
Building a Debian package
90+
91+
$ dpkg-buildpackage -F
92+
93+
94+
NOTE
95+
----
96+
The example programs server{1,2} and client{1,2} that communicate using sockets do not curently work,
97+
either in the original i386 build or the 32-bit on am64 build. I haven't figured this out yet.
98+
99+
Neil Matthew

README.original

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
The Debian Package a68toc
2+
-------------------------
3+
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.
7+
8+
The compiler front-end is essentially the Algol 68 RS portable
9+
compiler originally written by the Defence Research Agency when it
10+
was known as the RSRE (Royal Signals and Radar Establishment). Only
11+
that part of Algol 68 needed for the ELLA compiler was implemented by
12+
the `a68toc' translator with the result that formats are unavailable
13+
and are likely to remain unavailable for the foreseeable future. The
14+
`PAR' construct, for parallel programming, with the associated mode
15+
`SEMA' and the operators `LEVEL', `UP' and `DOWN' never were part of
16+
the Algol 68 RS compiler.
17+
18+
After extracting the A68toC system from the ELLA package, it became
19+
clear that the library preludes provided by the ELLA team were
20+
entirely unsatisfactory for the general user, not least because they
21+
were almost completely without documentation (see ctrans.texi).
22+
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+
47+
The 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.
61+
62+
This version of the translator dispenses with the module manager `mm' and,
63+
instead, uses `ca' to create preludes and programs.
64+
65+
A few extra files have been added to the port:-
66+
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'
73+
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
86+
87+
If any of these interest you, then do send me email.
88+
89+
Dr Sian Mountbatten Thu Sep 13 18:00:00 +0100 2012
90+
Inverness
91+
Scotland
92+
<poenikatu@fastmail.co.uk>

0 commit comments

Comments
 (0)