PL/I ("Programming Language One", pronounced "pee el one") is a computerprogramming language designed for scientific, engineering, and business applications. It has a very large vocabulary of built-in functions. In fact, there is probably no one compiler that has the full standard of keywords available. PL/I compilers are normally subsets of the language that specialize in various fields. The language syntax is English-like and suited for describing complex data formats, with a wide set of functions available to verify and manipulate them. PL/I's principal domain is data processing. PL/I supports recursion and structured programming.
Partial list of features:
preprocessing
Free form syntax
full support for pointers
Case-insensitive keywords
variable-length arrays
Call by reference is the default
Supports complex structure declarations with unions
Built-in support for a slew of data types, including two types of strings
Four classes of storage: Automatic, Static, Controlled (dynamic) and Based (anonymous dynamic)
PL/I is undoubtedly one of the most powerful programming languages that have ever been made. It combined the best features of some of its predecessors, plus many modern features. Its lack of success can be attributed to several factors. One is that the language itself was hard to implement (for example, its co-processing facilities requires multi-programming environment with support for non-blocking multiple threads for processes by the operating system); or COBOL programmers viewed it as a "bigger COBOL" and Fortran programmers viewed it as "bigger Fortran", both somewhat intimidated by the language and disinclined to adopt it.
With full support for pointers to all data types (including pointers to structures of course), recursion, co-processing, extensive built-in functions and many other facilities, PL/I was indeed quite a leap forward compared to the programming languages of its time. Even by today's standards, a correct and full PL/I implementation would be a very hard contestant to compete with for other programming languages.
External links
The C programming language was heavily modelled after PL/I. The following link makes a side-by-side comparison of the two languages: Power vs. Adventure - PL/I and C (http://www.uni-muenster.de/ZIV/Mitarbeiter/EberhardSturm/PL1andC.html/)
The pl1gcc project is an attempt to create a native PL/I compiler using the GNU Compiler Collection. The project is looking for more people to join the development and testing: PL/I for GCC (http://pl1gcc.sourceforge.net/)