XPL

From Wikipedia, the free encyclopedia
Jump to: navigation, search
XPL
Appeared in 1967 (1967)
Developer W. M. McKeeman, J. J. Horning, and D. B. Wortman at University of California; Santa Cruz, California
J. J. Horning, et al. at Stanford University
Influenced by PL/I
Influenced PL/M, Sue

XPL is a dialect of the PL/I programming language, developed in 1967, used for the development of compilers for computer languages. It was designed and implemented by a team with William McKeeman, James J. Horning, and David B. Wortman at Stanford University and the University of California, Santa Cruz. It was first announced at the 1968 Fall Joint Computer Conference in San Francisco, California.

It is the name of both the programming language and the compiler generator system (or TWS: translator writing system) based on the language.

Contents

[edit] Overview

XPL was designed just as PL/I was introduced. IBM, in designing PL/I, had largely abandoned the FORTRAN-flavored language constructs in favor of forms more like ALGOL 60 had in it, so the authors of XPL decided to base XPL on PL/I. XPL was a small language whereas PL/I was not. A significant language feature of XPL was the efficient garbage-collecting of strings, provided by an external subroutine which must be included with each XPL program.

XPL featured a relatively simple bottom-up compiler system dubbed MSP (mixed strategy precedence) by its authors. It was bootstrapped through Burroughs Algol onto the IBM System/360 computer. XCOM, the run-time monitor and program loader, was designed for the extant 2311 disk subsystem and it was efficient on that disk. It was about 50-percent efficient on the later 2314 disks, and very inefficient on the still later 3330 and 3350 disks. The compiler was distributed through the IBM SHARE users organization.

Subsequent implementations of XPL featured an SLR(1) parser. Subsequent implementations of XCOM featured support for many more disk types, and very efficient utilization of disk space on every supported disk type.

[edit] References

  • McKeeman, William Marshall; Horning, James J.; and Wortman, David B., A Compiler Generator (1971), ISBN 978-0131550773. The definitive reference.

[edit] Bibliography

  • Alexander, W.G. and Wortman, D.B. "Static and Dynamic Charactersistics of XPL Programs." IEEE Computer Nov 1975; 41-46.
  • Ancona, Massimo, Dodero, Gabriella, and Durante, Ercole Luigi "Cross software development for microprocessors using a translator writing system" Proceedings of the 4th International Conference on Software Engineering 1979: 399-402.
  • Kamnitzer, S.H. "Bootstrapping XPL from IBM/360 to UNIVAC 1100." ACM SIGPLAN Notices May 1975: 14-20.
  • Karger, Paul A. "An Implementation of XPL for Multics." SB thesis. Massachusetts Institute of Technology, 1972.
  • Klumpp, Allan R. "Space Station Flight Software: Hal/S or Ada?" Computer March 1985: 20-28.
  • Leach, Geoffrey and Golde, Helmut. "Bootstrapping XPL to an XDS Sigma 5 Computer." Software Practice and Experience 3 (1973): 235-244.
  • McKeeman, William M., Horning, James J. and Wortman, David B. A Compiler Generator. Englewood Cliffs, NJ: Prentice-Hall, 1970.
  • McKeeman, W. M., Horning, James J., Nelson, E.C., and Wortman, D. B "The XPL compiler generator system." AFIPS Conference Proceedings: 1968 Fall Joint Computer Conference. Washington DC: The Thompson Book Company. 1968: 617-635.
  • Sitton, Gary A., Kendrick, Thomas A., and Carrick, jr., A. Gil. "The PL/EXUS Language and Virtual Machine" Proceedings of the ACM-IEEE Symposium on High-level-language Computer Architecture Nov, 1973: 124-130.
  • Slimick, John "Current Systems Inplementation Languages: One User's View" Proceedings of the SIGPLAN symposium on Languages for system implementation Oct, 1971: 20-28.
  • Storm, Mark W., and Polk, Jim A. "Usage of an XPL Based Compiler Generator System" Proceedings of the 14th annual ACM Southeast Regional Conference Apr, 1976: 19-26.
  • Wortman, D.B. "A roster of XPL implementations." ACM SIGPLAN Notices Jan 1978: 70-74.

[edit] External Links

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export