| ACME | ALECS | Apple | BRUIN | CPL | EPL | ESPL-1 | GPL | HAL/S | LSD | MPL | NICOL | PARSEC | PEARL | PL/C | PL/DS | PL/M | PL/P | PL/PROPHET | PL/S | PL/zero | PLAGO | PLUM | PLUS | PLUTO | PL/6 | PL.8 | REXX | SabreTalk | SL/I | SP/k | SPL | SPL/I | TACPOL | XPL | PL/I extensions | Non related | Pending |
ACME, or PL/ACME is an incremental compiler for a PL/I dialect from
Stanford University. The main omission from standard PL/I is nested block structure and scoping.
Extensions to RECORD I/O allow ACME programs to communicate directly with laboratory instruments.
ACME ran on System/360 computers.
Breitbard, Gary Y, and Wiederhold, Gio, "The ACME Compiler".
ALECS (Ames Laboratory Experimental Control System) is PL/I subset developed at the
Ames Laboratory of the US Department of Energy (at that time the Atomic Energy Commission).
Campbell, J.H. ; Covert, G.F. ; Helland, B.J. ALECS language reference manual
Apple A PL/I subset developed at General Motors Research Laboratories. Apple was the
primary application language for the MCTS timesharing system. Both Apple and MCTS
were written in a more restricted PL/I subset called MALUS (Latin for "Apple"),
originally bootstrapped using XPL, and then made self-hosting.
Marcotty, M. and Schutz, H., "The Systems Progranming Language MALUS", Software - Practice and Experience, 4, No. 1 79-90 (1974).
BRUIN (BRown University INteractive language). A conversational dialect of PL/I developed
at Brown University. There is information to the effect that BRUIN was distributed with CP/67.
Munck, Robert G.; Proceedings of the twenty-fourth National conference of the ACM (1969): "Meeting the computational requirements of the university - The Brown University Interactive Language".
CPL (Conversational Programming Language) was an interactive PL/I subset
that ran on DEC PDP-10, Decsystem-10, and Decsystem-20 computers.
Another (or possibly the same) CPL was developed by Allen-Babcock Computing for IBM as the application language for their "Conversational Programming System."
decsystem10/20 Conversational Programming Language User's Manual. Digital Equipment Corporation DEC-10-LCPLA-B-D; 1976.
EPL (Early PL/I) was a subset of PL/I used to build the Multics Operating System
until a full PL/I compiler became available. An even more restricted subset
(Restricted EPL) was defined excluding PL/I features for which EPL generated
www.multicians.org has information on EPL and Multics.
ESPL-1 (or ESPL/1) "an offshoot of PL/I called ESPL-1 (Electronic
Switching PL/1) which was basically PL/I with some variations for extra-easy bit handling
and so-on. ... it was - I believe - a joint venture between IBM and ITT" (now Alcatel).
[posted to usenet:comp.lang.pl1 Mon, 7 Oct 2002].
GPL(General Programming Language) is the implementation language for Honeywell GCOS7.
Formerly HPL, the language was renamed GPL in the 1980s. HPL was originally developed as a cross-compiler
on Multics, written in PL/I.
Other Honeywell implementation languages were MLP, a PL/I-like language used to develop GCOS 64, implemented as a macro processor on the GE-635 which generated NAL assembler, PL/8, developed by Toshiba and used by Honeywell to develop GCOS8, and BPL developed by Honeywell and NEC.
HAL/S is a realtime language developed for NASA by Intermetrics (now part of L-3 Communications) in the 1970s
for programming embedded systems for the Space Shuttle program. The initial HAL/S compiler was developed using
LSD(Language for System Development), also called LSyD, is a portable systems-programming
PL/I subset from Brown University. "Improvements of LSD over PL/I have been made to include pointer
chasing methods, structure definitions, character facilities, debugging and program linking."
Bergeron, R. Daniel, Gannon, John D., and van Dam, Andries. "Language for System Development."
Proceedings of the SIGPLAN symposium on Languages for system implementation (1971):50-72.
NICOL "A small, limited, and modified subset called NICOL 1 was implemented by Massachusetts
Computer Associates in the fall of 1965 on the IBM 7094." Sammet, Jean; Programming Languages:
History and Fundamentals; Englewood Cliffs, NJ; Prentice-Hall, Inc., 1969; p.542.|
NICOL is one of the earliest PL/I implementations.
Christensen, C., and Mitchell, R. Reference Manual for the NICOL 1 Programming Language, 3rd ed.;
Wakefield, MA; Computer Associates, CA-6511-3011; 1965.
Brian Spoor reports that ICL developed a language also called NICOL (NIneteen hundred COmercial Langauage) for the 1900 series. This language was a subset of PL/1 designed as an easy step to a computer from a tabulator. "From what I remember it was similar to RPG-II."
PARSEC is an extensible language with PL/I-like syntax derived from PROTEUS.
|PEARL (Process and Experiment Automation Real-Time Language) is a process-control language deleloped between 1968 and 1973 in Germany by a working group from industry and universities. Pearl has extensive real-time and parallel-processing facilities, but originally lacked pointers, recursive procedures, and a fixed-point data type. PEARL is widely used in Europe.|
PL/C (Programming Language/Cornell) is a large subset of the full PL/I language
designed by Cornell University in the early 1970s as a teaching language.
PL/C generated several versions, including PL/CT for interactive terminal use, and
PL/CS, a subset used by the Cornell
Major PL/I features missing from PL/C are the preprocessor (all), and the BASED and CONTROLLED storage attributes. PL/C adds extensive debugging and error recovery facilities.
Several PL/C-based cross compilers were developed at the University of North Carolina-Charlotte: PLCD generated code for the DEC PDP-11, PLCI for Interdata computers, and PLCV for Varian systems.
Conway, Richard W., and Wilcox, Thomas R.; "Design and implementation of a diagnostic compiler for PL/I"; CACM 16(1973); 169-179.
PL/DS (Programming Language for Distributed Systems)
"provides PL/I-like coding power and is very similar to the Programming Language/Systems
(PL/S) and Programming Language/Advanced Systems (PL/AS) languages used internally by
IBM to produce other System/370 operating systems and control programs."
PL/DS was used by IBM to develop the DPPX operating system for the IBM 8100 system. It was ported to System/370 architecture (PL/DS2) and used to port DPPX to the 9370 processor.
Abraham, R., and Goodrich, B.F., "Porting DPPX from the IBM 8100 to the IBM ES/9370: Feasibility and Overview"; IBM Systems Journal, 29(1); 1990; 90-140.
PL/M (Programming Language/Microcomputers) is a language devised by
Digital Research for Intel in 1972. PL/M was the implementation language for CP/M.
Versions include PL/M-80, PL/M-86, PL/M-386.
A Guide to PL/M Programming Rev.1, Sep 1973 (PDF), at Bitsavers.org.
The FORTRAN source for PL/M-80 and the C version generated by F2C can be found at Hobbes.
Related languages MPL (Motorola Programming Language) and SPL/M (Small Programming Language for Microprocessors) generate code for the Motorola 6800.
PL/P (Programming Language for PR1ME) is a high-level systems language used for the
implementation of the PRIMOS operating system. PL/P was used primarily for the kernel.
A related, though slightly different subset, SPL, was used to write external commands.
[Thanks to Dennis Boone for the distinction between PL/P and SPL]
PL/PROPHET is a programming language for the PROPHET system used by
Castleman, P.A., et al; "The Implementation of the PROPHET System"; NCC 43, AFIPS (1974).
PL/S is an IBM systems programming language for S/360, S/370, and z/Server systems.
Versions of PL/S are PL/S-II, PL/S-III, and PL/AS. An early (late 60's)
version of PL/S was also known as BSL (Basic Systems Language).
IBM Corporation; Guide to PL/S II; International Business Machines Corp., 1974. GC28-6794-0.
Wiederhold, Gio, and Ehrman, John; "Inferred SYNTAX and SEMANTICS of PL/S"; Proceedings of the SIGPLAN symposium on Languages for system implementation New York, ACM, Inc., October, 1971; p.111-121.
PL/zero is a minimal subset of PL/I designed for teaching introductory programming.|
Compare to SP/k. (Contrast with PL/0.)
At least one actual PL/zero compiler was built. Otherwise It was implemented as a notional subset of PL/C or other PL/I compilers.
Kennedy, Michael, and Solomon, Martin B.; Structured PL/zero plus PL/one; Englewood Cliffs, NJ, Prentice-Hall, 1977.
PLAGO (Polytechnic Load And GO translator) is an interactive interpreted PL/I
subset for teaching developed at Brooklyn Polytechnic Institute.
Lawson, H.W., Habib, S., et.al; "PLAGO/360 A PL/I Machine Implementation", Polytechnic Institute of Brooklyn Report PIBEE 71-001, 1971.
PLUM (Programming Language for the University of Maryland) was a load and go
compiler for Univac 1100 series computers developed by Marvin Zelkowitz.
PLUM development began about 1971, it was
operational around 1975, and was used until 1980 at the University of Maryland.
About 40 copies were distributed to other Univac sites.
PLUM was a load and go compiler. Typical compile times were about 1 second or less. Major limitation was size of about 2000 PL/1 source statements.One of the interesting features of Plum is that its implemention of "safe pointers." No lost memory, dangling references, or other pointer violations were possible.
Zelkowitz, M. V.; PLUM: The University of Maryland PL/1 System; University of Maryland
Technical Report TR-318; College Park, MD, Univ. of Maryland, 1974.
(PDF version online)
|PLUTO Teaching-oriented PL/I compiler from the University of Toronto. PL/I Made More Useful Teaching Tool (Computerworld).|
PL-6 is a high-level systems language used by Honeywell for CP-6.
Here is a small sample of PL-6 code.
PL.8 (or PL8) is a high-level systems language used by IBM for the 801 RISC computer,
later used for the RS/6000 and microcode for various mainframe models.
The name derives from the idea that the languge is 8/10 of PL/I. A PL8 front-end
has recently been developed for the Gnu Compiler Collection (GCC).
Auslander,M., et.al., "An overview of the PL.8 Compiler", Proceedings of the
SIGPLAN'82 Symposium on Compiler Writing.
REXX is an interpreted command language based on PL/I. REXX is the primary command
language for IBM VM, TSO, and OS/2 systems and is available for DOS, Windows, and Unix.
REXX has no variable declarations; all variables are character strings. A notable REXX feature is associative arrays, known as stems.
"Programming Language - REXX" ANSI standard X3.274-1996.
See The Rexx Language Association for additional information on Rexx.
RUSH (Remote Users of Shared Hardware) was a conversational dialect of PL/I developed by Allen-Babcock Computing
for their timesharing service in 1964.
Allen-Babcock Computing. RUSH Reference. Los Angeles, Allen-Babcock. 1968
SabreTalk is a PL/I subset developed by American Airlines for their SABRE system.
The Sabretalk compiler ran on MVS (zOS) and generated 360 assembler code which was then
assembled to produce the executable program. Because of this SabreTalk supported imbedded assembler code.
At some point it it's life Sabretalk was renamed PL/TPF.
SabreTalk Reference Guide
SL/I (Student Language/One) is an interpreter for a PL/I subset that ran on the IBM 1130 minicomputer.
Jackson, M., Boulton, P., and Lee, E.S.; "SL1 on the IBM 1130"; Proceedings of the Joint Meeting of Canadian and Midwestern Regions of COMMON; Chicago, 1967.
SP/k is a series of PL/I subsets (k=1:8) for instructional use in teaching
introductory computer programming. Compare to PL/zero.
Holt, R.C. et. al., "SP/k: A System for Teaching Computer Programming", CACM 20(1977); 301-309.
There is also CSP/k (Concurrent SP/k).
SPL/I is a language similar to HAL/S developed between 1972 and 1976 by the US Naval Research Laboratory (NRL)
aned Intermetrics as a signal processing language.|
Amoroso,Serafino, and Wegner, Peter. Report to the High Order Language Working Group 32-33.
TACPOL (TACtical Procedure Oriented Language) is a PL/I subset "Command and Control"
(C&C) language developed by Litton for the U.S. Army in 1967. TACPOL was originally used in
programming the "TACFIRE" (tactical fire direction) system for field artillery fire-control.
Hess, Herman, and Martin, Charles. "TACPOL-A Tactical C & C Subset of PL/I", Datamation, April 1970. 151-157.
By 1995, TACPOL had been largely superseded, presumably by Ada.
Hook, Audrey A., et.al. A survey of Computer Programming Languages Currently Used in the Department of Defense. Alexandria, VA: Institute for Defense Analyses, 1995. (PostScript document)
Data Systems Division, Litton Systems, Inc. TACPOL, a procedure-oriented language for tactical commmand and control applications. Document MS 2866, 1968.
XPL was designed in the sixties by McKeeman, Horning, and Wortman as
a small subset of PL/I plus extensions intended for compiler writing.
McKeeman, William M., Horning, James J., and Wortman, David B.; A Compiler Generator; Englewood Cliffs, NJ, Prentice-Hall, 1970.
See the XPL website for additional information.
Languages not related to PL/I:
APL an algorithmic language designed by Ken Iverson.
PL/0 a simplified Pascal-like language. (contrast with PL/zero).
PL/360 a high-level assembler language for IBM systems.
PL/B (Programming Language for Business), the language formerly named DataBus.
PL/SQL an Oracle database retrieval language resembling Ada.
PL/Z A programming language for Zilog microprocessors.
PL-11 a high-level assembler for PDP-11 systems resembling PL/360.
PL-516 a high-level assembler for DDP-516 systems resembling PL/360.
Pending additions to list:
AED Sammet 1973, CUPL Sammet 1973, PLESS, HEPL PL/I, PLINT, PL/A, SPLINTER, STAPL, CIMPL.
This table is an attempt to gather in one place information regarding languages in the PL/I family. The distinction between a language and a dialect or implementation is somewhat arbitrary, affecting the selection of what's included. If anyone has additional information or pointers to web pages for any of these or other PL/I-related languages, please contact me.
I am particularly interested in the following:
Free Online Dictionary of computing, Denis Howe, editor.
The Language List, Bill Kinnersley, maintainer.
Interactive historical roster of computer languages, Diarmuid Pigott, author.
Bitsavers.org maintains a library of scanned original manuals for a collection of older software.
Dennis Boone, Tim Challenger, Bernd Oppolzer, Clay Phipps, Diarmuid Pigott, Robin Vowels, Brian Spoor, Marvin Zelkowitz.
Last modified 12 Aug 2016.