Programming Language One.
An attempt to combine the best features of Fortran
and ALGOL 60
. Developed by George Radin of IBM
in 1964. Originally named NPL and Fortran VI. The result is large but elegant. PL/I was one of the first languages to have a formal semantic
definition, using the Vienna Definition Language
, a dialect of PL/I, was used to write almost all of the Multics operating system
. PL/I is still widely used internally at IBM
. The PL/I standard is ANS X3.53-1976.
PL/I has no reserved words. Types are fixed, float, complex, character strings with maximum length, bit strings, and label variables. Arrays
have lower bounds and may be dynamic. It also has summation, multi-level structures, structure assignment, untyped pointers, side effects
. Control flow
constructs include goto; do-end groups; do-to-by-while-end loops; external procedures; internal nested procedures and blocks; generic procedures and exception handling. Procedures may be declared recursive
. Many implementations support concurrency
('call task' and 'wait(event)' are equivalent to fork
/join) and compile-time statements. LPI
is a PL/I interpreter
["A Structural View of PL/I", D. Beech, Computing Surveys, 2,1 33-64 (1970)].