Languages Related to PL/I

| BRUIN | EPL | ESPL-1 | GPL | NICOL | PLAGO | PL/C | PL/DS | PL/M | PL/P | PL/PROPHET | PL/S | PL/zero | PLUM | PLUS | PL/6 | PL.8 | SL/1 | SP/k | REXX | XPL | PL/I extensions | Non related |

 
BRUIN 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".

 
EPL 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 REPL (Restricted EPL) was defined excluding PL/I features for which EPL generated inefficient code.

www.multicians.org has information on EPL and Multics.

 
ESPL-1 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 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.

 
GPL 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 possibly the only PL/I dialect ever implemented on a second-generation computer system.

Christensen, C., and Mitchell, R. Reference Manual for the NICOL 1 Programming Language, 3rd ed.; Wakefield, MA; Computer Associates, CA-6511-3011; 1965.
Christensen, C., and Mitchell, R. Reference Manual for the NICOL 2 Programming Language; Wakefield, MA; Computer Associates, CA-6701-2611; 1967.

 
PLAGO 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.

 
PL/C 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/CT and PL/CS are versions of the PL/C compiler. 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 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 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.

The PL/M-386 Programmer's Guide is available as a PDF document.

The FORTRAN source for PL/M-80 and the C version generated by F2C can be found at Hobbes.

A related language MPL (Motorola Programming Language) generates code for the Motorola 6800.

 
PL/P PL/P (Programming Language for PR1ME) is a high-level systems language used for the implementation of the PRIMOS operating system. Also known as SPL.
 
PL/PROPHET PL/PROPHET is a programming language for the PROPHET system used by Pharmacologists.

Castleman, P.A., et al; "The Implementation of the PROPHET System"; NCC 43, AFIPS (1974).

 
PL/S 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 PL/zero is a minimal subset of PL/I designed for teaching introductory programming.
Compare to SP/k(Contrast with PL/0.)

Apparently no actual PL/zero compiler ever existed, instead 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.

 
PLUM PLUM (Programming Language for Univac Micros) is an interactive PL/I developed by Sperry for programming microcomputers.

Zelkowitz, M. V.; PL/I Programming with PLUM; Geneva, IL, Paladin House Publishers, 1976.

 
PLUS PLUS (Programming Language for UNIVAC Systems) is a language designed by Sperry for systems programming.
 
PL-6 PL-6 is a high-level systems language used by Honeywell for CP-6.

View a small sample of PL-6 code from an adventure game.

 
PL.8 PL.8 is a high-level systems language used by IBM for the 801 RISC computer, later used for the RS/6000.

Auslander,M., et. al., "An overview of the PL.8 Compiler", Proceedings of the SIGPLAN'82 Symposium on Compiler Writing.

 
REXX 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.

 
SL/1 SL/1 (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 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).

 
XPL 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.

 
Extensions PL/I Extensions:
APAREL
(A Parse Request Language) a PL/I extension to add BNF parsing routines.
GASP
(Graph Algorithm and Software Package) a PL/I extension for programming graph algorithms.
GPL/I
(Graph Programming Language/One) a PL/I extension for handling graphs as a fundamental datatype.
MPL
a PL/I-like language for microprogramming. Eckhouse, Richard H.; SUNY/Buffalo Department report 1-71-MU, June, 1971.
PDEL
(Partial Differential Equation Language) a PL/I preprocesor for solving partial differential equations.
PL/I-FORMAC
(Formula Manipulation Compiler) a PL/I extension for symbolic mathematics.
PLANS
(Programming Language for Allocation and Network Scheduling) a PL/I preprocesor for developing scheduling algorithms.
SIMPL/I
is a simulation language implemented as a PL/I preprocessor.
 
Unrelated 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-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.

This table is an attempt to gather in one place information regarding languages in the PL/I family. It is neither original nor exhaustive. If anyone has additional information or pointers to web pages for any ot these or other PL/I-related languages, please contact me.

References:
Free Online Dictionary of computing, Denis Howe, editor.
The Language List, Bill Kinnersley, maintainer.

Last modified 14 Jun, 2004