Generated by DeepSeek V3.2| PL/I | |
|---|---|
| Name | PL/I |
| Paradigm | Procedural programming, Structured programming, Imperative programming |
| Designer | IBM, SHARE |
| Developer | IBM |
| Typing | Static typing, Strong typing |
| Influenced | PL/M, PL/S, PL/C, PL/8, REXX, SP/k |
PL/I. A high-level programming language developed in the 1960s by a consortium involving IBM and the user group SHARE. It was designed to be a comprehensive, general-purpose language suitable for scientific computing, business data processing, and systems programming. Its creation was a direct response to the proliferation of specialized languages like FORTRAN and COBOL, aiming to unify these domains under a single, powerful syntax.
The development was initiated in the early 1960s under the project name NPL, which was later changed to avoid confusion with the National Physical Laboratory in the United Kingdom. Key figures from IBM, including George Radin, played leading roles, with significant input from the SHARE organization. The first compiler was released for the IBM System/360 family of mainframe computers, becoming a cornerstone of the OS/360 and DOS/360 operating environments. Its design was ambitious, seeking to incorporate the best features from contemporaries like ALGOL 60, FORTRAN, and COBOL, while adding novel capabilities for concurrent programming and exception handling.
It introduced a remarkably broad set of features for its era, supporting list processing, string manipulation, and bit string operations natively. The language provided extensive facilities for data structure definition, including arrays, structures, and unions. It was one of the first to offer built-in support for multitasking through the `TASK` and `EVENT` data types, allowing for parallel processing constructs. Other advanced capabilities included comprehensive exception handling using `ON` conditions, recursion, and pointer-based dynamic memory allocation, making it applicable from operating system development to commercial applications.
The syntax is notably verbose and English-like, drawing clear influence from COBOL in its readability. Programs are organized into blocks, with a mandatory `PROCEDURE` statement defining the start of each subroutine or main program. It uses a free-format structure, though early implementations often relied on specific punched card columns. A distinctive characteristic is its extensive use of defaults, where the compiler makes assumptions about data types and attributes unless explicitly declared. Control structures include DO loops, IF-THEN-ELSE statements, and SELECT groups for case analysis, blending the clarity of FORTRAN with the algorithmic rigor of ALGOL 60.
The primary and most influential implementation was the IBM PL/I F compiler for the System/360. Other significant versions included the IBM PL/I Optimizing Compiler, which offered enhanced performance. Due to its complexity, several simplified or academic subsets were created, such as PL/C from Cornell University, PL/0 for teaching, and PL/S for systems programming on IBM System/370 machines. The language also saw implementations on other platforms, including DEC PDP-10 systems, Burroughs large systems, and early UNIX environments at Bell Labs. A object-oriented derivative, PL/I*, was later developed.
Despite never achieving the widespread commercial dominance of COBOL or FORTRAN, it had a profound technical influence. Its design directly inspired the creation of PL/M by Gary Kildall, which became crucial for Intel 8080 microprocessor programming and the CP/M operating system. Elements of its syntax and semantics can be seen in later languages like REXX, Ada, and C. It remains in use today in niche areas, particularly within certain financial institutions, insurance companies, and government agencies like the United States Department of Defense, maintaining legacy systems on IBM mainframe platforms such as z/OS.
Category:Programming languages Category:Procedural programming languages Category:IBM software