[Info-vax] Algol for VMS?
cao...@pitbulluk.org
caoimhe at pitbulluk.org
Tue Mar 23 07:26:43 EDT 2021
I've been looking around for the VAX/VMS version of the RSRE Algol68RS compiler which we used to use at the University of Liverpool Department of Computer Science, having moved away from Algol68C on the CTL Mod 1. My enquires at Altran (UK), Oxford University, even back at Liverpool, went nowhere.
The RS compiler was essentially a one-pass compiler for a very large subset of the language. Parallel clauses (and therefore SEMA) weren't implemented. Identifiers had to be declared textually before referenced elsewhere, so procedure variables were necessary for mutually recursive procedures. Mutually recursive modes used the idea of a stub, ie:
MODE A, B = STRUCT(....., A something, ....), A = actual definition of A.
The RS compiler had a really good separate compilation and module composition system which preserved the compilation context so important to the language.
There were 'lower level' modes much closer to machine representation and coercions designed to keep the implementation standard. For example, the mode of "HELLO" was a priori STRUCT5CHAR not [ ]CHAR, with the 5 being part of the mode. This would quite happily be coerced into [ ]CHAR as the context demanded.
External routines could be defined using ALIEN, for example:
PROC(.......)INT sys qiow = ALIEN "SYS$QIOW"
and they obeyed the VMS calling standard along with certain operator-like bold words for changing the parameter passing mechanism, such as VMSIMMED for passing by immediate value rather than the default by reference.
Formatted transput was there and, from what I remember, fully implemented.
We did have access to FLACC on the university's IBM 3083 at the time, but EDT (and EVE) and VMS's DEBUG seemed much nicer than XEDIT and terse 'abend' messages.
Keith
More information about the Info-vax
mailing list