70
A Roster of XPL Implementations David B. Wortman Computer Systems Research Group University of Toronto Toronto, Ontario, Canada The list below contains a description of implementations of the XPL language known to the author as of 1 March 1977. Each entry has been checked by the individual implementor and they each take responsibility for the information regarding their implementation. The author would appreciate receiving information on any XPL implementations not included in this list. IBM System/360 and System/370 1. The original XPL as implemented by W.M. McKeeman, J.J. Horning and D.B. Wortman. Documented in A Compiler Generator, Prentice-Hall, 1970. Distributed version was updated in January 1972 to increase scanning and parsing efficiency and to fix known bugs. Implementor: Prof. W.M. McKeeman Information Sciences University of California Santa Cruz, California, 95060 Distributor: Share Program Library Agency Triangle University Computing Center P.O. Box 12175 Research Triangle Park North Carolina, 27709 Program number: 360D-03.2.015 2. XPL Optimizer The optimizer is a standard implementation of XPL and is based on McKeeman, Horning, and Wortman's improved XCOM, namely, it employs hashed symbol table organization. It includes an extra built in function CORFHALFWORD. The compiler source is available. The following areas have been optimized: procedure calls when the argument~nd corresponding parameter are of the same type, and when the argument is a constant; constant subscripts; use of COREHALFWORD and COREWORD; string constants of length one; iterative DO state- ments 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 commutive, and an improved Commute algorithm is used. Halfword instructions are generated for BIT(16) variables.
71
These areas have been improved or rewritten: calls on OUTPUT, catenation, integer-to-string conversion, multiply, divide, and MOD. An emitter for 55 instructions has been added. The optimizer 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 for optimizing XCOM). Symbol table size: 468. Implementor Mr. R.A. Vowels and Senior Lecturer, Computer Science Distributor: Department of Mathematics and Computer Science Royal Melbourne Institute of Technology 124 La Trobe Street Melbourne, Victoria, 3000 Australia 3. The original XPL language without extensions; some errors have been corrected. Performance improved by hashed symbol table, high-speed scanner, LR(1) parsing. An overlaying monitor is available, as is an interface for DOS. Other improvements are planned but are not completed as of 1 March 1977. Implementor Prof. Richard B. Kieburtz and Department of Computer Science Distributor: State University of New York at Stony Brook Stony Brook, Hew York, 11794 Univac 1100 Series 1. XPL/ll00 is available in ASCII and Fieldata character code versions. XCOM/ll00 runs as a standard Univac 1100 processor and generates relocatable code for input to the 1100 linkage editor. The sub- monitor has been replaced by XPL procedures and Assembler routines. The XPL trace has been replaced by procedures which provide linkages to the standard 1100 interactive machine language trace and flow analysis routines. No limitation on the complexity of expressions, no limit on the length of a character strinq and no limit on the number of descriptors. New data type 'external' for linkage to independently compiled routines (in any language). Implementor: Dr. Stephen H. Kamnitzer Sperry Univac Suite 2050, Place du Canada Montreal, Quebec, Canada, H3B 2N2 Distributor: Univac UPLI XPL Compiler, Program No. 800159
72
2. Further refinement of Kamnitzer's XPL/ll00 allows external compilation and provides considerable improvement in performance. (1110 only, the improvements are not 1108 compatible). Implementor Prof. Richard B. Kieburtz and (see address under IBM System/360 and System/370) Distributor: ICL System 4 1. XPL Optimizer. See description under IBM System/360 and System/370. Multijob version and monitor available. Implementor Mr. R.A. Vowels and (see address under IBM System/360 and System/370) Distributor: CBC 6000 Series and CYBER Series 1. This version of XPL includes the following: a) Recursive procedures b) Nesting of non-recursive procedures to any depth. Recursive procedures may be nested in non-recursive procedures~ but not in each other. Storage for procedures nested in rec~r- sive procedures is allocated at the time the recursive procedure is called. c) Storage for non-recursive procedures is allocated at compile time. d) Character strings are of varying length within a fixed maximum length e) Fixed vectors may be declared with a bit width, and grouped in parallel to take advantage of CDC9s 60-bit words. f) Runs in 60K (octal) and compiles about 4000-5000 cards/minute. The submonitor is for the NOS operating system and allows fully interactive input and output. g) Coming soon: ability to call COMPASS and (gasp!) Fortran subroutines using the FTN calling sequence. Implementor: Prof. Andres Rudmik Department of Computer Science Queen's University Kingston, Ontario, Canada Distributor: Mr. Larry Thiel Department of Computer Science Concordia University 1455 de Maisonneuve Blvd. West Montreal, Quebec, Canada H3G 1M8
73
XDS Sigma-5 1. XPL was bootstrapped to the XDS Sigma 5 computer at the University of Washington in 1971 [G. Leach and H. Golde, Bootstrapping XPL to the XDS Sigma 5 Computer, Software-Practice and Experience, 3, 1973, pp. 235-244]. The language has undergone two major revisions and is now called XPL/S version C00. It will run under the operating systems RBM, CP5 and BPM. An EXIT label statement has replaced the GOTO statement. The MSP parser has been replaced by an SLR(1) parser. Separate compilation of procedures is now allowed with the addition of GLOBAL and EXTERNAL declarations for procedures and variables. The runtime support and garbage collection has been modified to permit compila- tion segments to be loaded as overlays. Procedure parameters may be passed by value or reference. A FORTRAN interface has been added. Implementor: Prof. Hellmut Golde Department of Computer Science, FR-35 University of Washington Seattle, Washington, 98195 Distributor: Mr. Ted Raffel EXCHANGE Secretary Honeywell Information Systems 5959 W. Century Blvd., Suite 800 - AFC Los Angeles, California, 90045
74
XDS Sigma-7 1. XPL for the Sigma-7 is modeled on the original implementation. The input language accepted is a superset of the original and the output is an absolute load module designed for convenient execution on most Sigma-7 systems. Each new installation must provide a local sub-monitor capable of loading XPL object files for execution and of servicing requests made by the running program. The generated code should also run on Sigma-6, Sigma-8 and Sigma-9 computers. Language changes include an XOR operator, compile-time constant ii expressions allowed in declarations, in-line assembly language, and some modifications to pre-declared variables and toggles to fit the Sigma-7 environment. Input/output assignments are not preset; a pre-declared routine attaches logical unit numbers to physical devices at run-time. Two minor flaws in the XPL syntax have been corrected. Considerable peep-hole optimization is done, but nothing more elaborate. A grammar analyzer is part of the distribution package. Implementor: Mr. Charles Wetherell Lawrence Livermore Laboratory P.O. Box 808, L-314 Livermore, California, 94550 Distribution: Honeywell Corporation Att: EXCHANGE 5250 W. Centry Blvd. Los Angeles, California, 90045 Program number: 890799 Digital Equipment PDP-10 1. Implementor Mr. R.W. Hay and Dataline Systems Ltd. Distributor: 175 Bedford Road Toronto, Ontario, M5R 2L2 CANADA


Wortman, D.B. "A roster of XPL implementations." ACM SIGPLAN Notices Jan 1978: 70-74.
Posted with permission of David Wortman and the ACM.
Typographical error in the original (Rooster instead of Roster) corrected at the request of the author.

XPL home