XPL
A small dialect of PL/I used for compiler writing from Stanford, 1967-69. XPL
has one-dimensional arrays. I/O is achieved with character pseudo-variable INPUT
and OUTPUT, e.g.
OUTPUT = 'This is a line';
It has inline machine code. "Programmers are given all the rope they ask
for. Novices tend to hang themselves fairly
frequently." XPL has been implemented on IBM 360,
Univac 1100, ICL System 4, CDC6000 and Cyber series,
XDS Sigma-5 and Sigma-7 and DEC PDP-10.
An optimising XPL compiler (version 1) by Robin Vowels
<robin_vowels@rmit.edu.au> is a standard implementation of XPL and is
based on McKeeman, Horning, and Wortman's improved XCOM (which employs hashed
symbol table generation). It includes the extra built-in function COREHALFWORD.
The following areas have been optimised: procedures calls when the argument and
corresponding parameter are of the same type, and when the argument is a
constant; constant subscripts; use of CORELHALFWORD and COREWORD; string
constants of length one; iterative DO statements by transferring code to the end
of the loop.
String constants of length one do not require a descriptor, hence more
descriptors are available for string variables. Comparison operations are
treated as commutative, and an improved Commute algorithm is used. Halfword
instructions are generated for BIT(16) variables.
These areas have been improved or re-written: calls on OUTPUT, catenation,
integer-to-string conversion, multiply, divide, and MOD. An emitter for SS-type
instructions has been added. The compiler achieves an 11% reduction in object
code compiling itself, an 11% increase in compilation rate, a 55% increase in
compilation speed when the $E toggle is set. Special treatment for catenating a
string to an integer substantially decreases consumption of the free string
area, and decreases string moves. The latter improvement is most noticeable on
small core machines.
Core requirements: less than the improved XCOM on which it is based (approx.
98000 bytes). Symbol table size is 468. Ported to IBM System 370. The compiler
is written in XPL. The code generators are machine-specific.
["A Compiler Generator," W.M. McKeeman et al, P-H 1970].
[JCC, AFIPS 1968].
(1993-08-07)
Nearby terms:
XperCASE « XPG « XPG3 « XPL » xpm » XPOP »
Xpress Transport Protocol
|