Aviva Directory » Computers & Internet » Programming » PL/I

Pronounced PL/One, PL/I is a procedural, imperative, structured programming language used in scientific, engineering, business, and system programming. Introduced in the early 1960s, it is still in use and under active development by IBM.

In the 1950s and early 1960s, business and scientific computer users were on various types of hardware, using programming languages specific for the hardware. By the early 1960s, business users were moving from system languages to COBOL, while the scientific community were opting for languages like Fortran.

When IBM announced its IBM Sytem/360 in 1964, it was promoted as a common machine architecture for both business and science, replacing prior IBM architectures.

Seeking a common programming language for all users, IBM formed a committee to extend Fortran to include the features required by commercial programmers. The committee was made up of three IBM programmers and three members of SHARE, and IB scientific users group. They determined that Fortran could not be easily extended to meet the goals that they were given, and instead began designing a new language.

Based loosely on ALGOL, this new language was called NPL. However, this designation conflicted with the National Physical Laboratory in the UK, so it was replaced by MPPL, for MultiPurpose Programming Language. In 1965, it was again changed, this time to PL/I, with "I" being a Roman numeral for one rather than a letter designation. For that reason, it is sometimes referred to as PL/1.

IBM viewed this new language as a starting point, and PL/I has always been under active development. The SHARE user group, along with GUIDE (Guidance for Users of Integrated Data-Processing Equipment), were involved in extending the language and played a role in IBM's management of the language through various PL/I Projects. The first PL/I compiler was released in 1966, and the ANSI Standard for the language was approved in 1976.

PL/I was first implemented at the IBM Hursley Laboratories in the United Kingdom, as part of its System/360 development. The first compiler for PL/I was the PL/I F compiler for the OS/360 operating system, then rewritten in System/360 assembly language, although many aspects of the language were still under development at that time.

The PLI D compiler was developed at IBM Germany for the DOS/360 low-end operating system, coming out about a year after PL/I F.

In the 1960s, several groups developed compilers for PL/I. These included Early PL/I (EPL), which was a subset dialect of PL/I, developed at MIT and Bell Labs. The Honeywell PL/I compiler was an implementation of the full ANSI X3J1 standard.

IBM developed PLI/I Optimizer and PL/I Checkout, the latter of which was a rewrite of PLI/F in BSL, which later became PL/S, a machine-oriented programming language based on PL/I.

In 1988, Digital Equipment released and subset of the ANSI PL/I language known as Digital PL/I. It runs on VMS on VAX and Alpha and on Tru64.

Various North American universities used PL/I to establish time-sharing services on campus, which required conversational compiler/interpreters for use in teaching science, mathematics, engineering, and computer science. As the IBM offerings were not suitable for this purpose, some of these schools developed their own subsets of PL/I. Cornell University developed PL/C for teaching dialect. It was a fast compiler that included almost all of IBM's PL/I, adding the unusual capability of never failing to compile a program. Created at the Polytechnic Institute of Brooklyn, PLAGO used a simplified subset of PL/I and focused on good diagnostic error messages. The University of Toronto produced the SP/k compilers for teaching programming. Others included PL0 (University of New South Wales), PLUM (University of Maryland), and PLUTO (University of Toronto).

In 1992, IBM released PL/I for OS/2, a new compiler for its OS/2 operating system, including most of the ANSI-G features and adding several new features. Other releases included MVS, VM, OS/390, AIX, and Windows, although it has since withdrawn its support for Windows.

Other compilers, some of which are no longer supported, include CIMS PL/I, Iron Spring PL/I, Open PL/I for Windows, PL/6, PL/8, PL/G, PL/I for AIX, PL/M, PL/P, PLUS, Raincode PL/I, and UNIVAC PL/I.

PL/I dialects include HAL/S, PL/S, SabreTalk, SPL/I, and XPL.

The focal point of this guide is the PL/I programming language. Appropriate resources, then, include sites whose topics are focused on the language itself, or any of its dialects, compilers, IDEs, editors, or other tools designed to facilitate programming in PL/I, as well as PL/I user groups, forums, tutorials, or guides.



Recommended Resources

Search for PL/I on Google, Bing, or Yahoo!