Science  People  Locations  Timeline
Index: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Home > PL/I


 Contents
PL/I ("Programming Language One", pronounced "pee el one") is a computer programming 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:


PL/I is undoubtedly one of the most powerful programming languages that has 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 programmer viewed it as "bigger Fortran", both somewhat intimidated by the language and disinclined to adopt it. The fact is however, that PL/I was by far a better language than both COBOL and Fortran, but it could be "cobolish" or "fortranish" looking if one chose to code it that way.

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.


1 History of PL/I

PL/I was developed by IBM as part of the development of the System 360. Prior to the System 360, IBM made several different incompatible models of mainframes for different purposes: some were designed for business use, others for scientific use. The goal of the System 360 project was to develop one series of compatible models to replace all the previous models, and which could be used equally well for commercial or scientific use.

Not only did business and scientific users use different machines; they also used different languages. Business users mainly used COBOL, while scientific users used Fortran. The goal of PL/I was to develop a single language usable for both business and scientific purposes. Another goal was to add structured programming constructs derived from ALGOL, which neither COBOL nor Fortran supported (at the time). PL/I was designed by a committee drawn from IBM programmers and users drawn from across the United States, working over several months. IBM originally wanted PL/I to be ready for use by the launch of the System 360; but unfortunately this deadline could not be met.

The language was originally to be called NPL, for "New Programming Language"; but that abbreviation could not be used because it was the name of the National Physical Laboratory in the UKThe United Kingdom of Great Britain and Northern Ireland is a state in Western Europe, usually known simply as the United Kingdom the UK Britain or less accurately as Great Britain . The UK was formed by a series of Acts of Union which united the formerly. So PL/I was chosen instead.

PL/I was not as successful as originally hoped for, due to a number of factors. Perhaps most important was that the language was very complex, making it difficult to implement in a timely fashion. This complexity was probably because it was designed by a committee; and the desire to supply the needs of very different types of users (business and scientific). Such delays, its complexity, and the low quality of early versions of IBM's PL/I compiler discouraged users from switching from COBOL or Fortran. It contained many rarely used features, such as multithreading support, which added corresponding cost and complexity to the compiler.

Another major problem was that instead of noticing features that would make their job easier, scientific (Fortran) programmers of the time had the opinion that it was a business language, while business (COBOL) programmers looked on it as a scientific language.

Compiler complexity was another issue that was perhaps underestimated during the initial design of the language. Optimization was unusually complex due to the need to handle asynchronous modification of variables (for example in the 'on error' construct) making it difficult to reliably predict how certain variables might be modified at runtime.

That is not to say that PL/I was not used. It received significant use in business data processing, and also for more general programming use. The MulticsMultics Mult iplexed I nformation and C omputing S ervice) was an extraordinarily influential early time-sharing operating system. Overview Initial planning and development for Multics started in 1964. Originally it was a cooperative project led by MIT (w project, one of the first to develop an operating system in a high level language, used PL/I. A subset of PL/I, PL/MThe PL/M programming language (for P rogramming L anguage / M icrocomputers is a medium-level language developed by MAA (later Digital Research) in 1972 on behalf of Intel for its microprocessors. PL/M is no longer supported by Intel, but aftermarket tool, was used to write CP/MCP/M C ommand P rocessor for M icrocomputers was an operating system for Intel 8080/ 85 and Zilog Z80 based microcomputers. It was created by Digital Research, Inc. founded by Gary Kildall. The combination of CP/M and S-100 bus computers patterned on the, while the XPLXPL is a dialect of the PL/I programming language targeted at the development of aerospace applications. PL/I dialects Imperative programming languages Structured programming languages Procedural programming languages. dialect was used to write HAL/SHAL/S is a real-time aerospace programming language, best known for its use in the Space Shuttle program. It was designed by Intermetrics in the 1970s for NASA. HAL/S is written in XPL, a dialect of PL/I. The three key factors in writing the language were as used on the Space Shuttle. A subset compiler from Cornell UniversityCornell University located in Ithaca, New York, USA, is a major research university and a member of the Ivy League. Cornell was founded in 1865 by Ezra Cornell, a businessman and a pioneer in the telegraph industry, and Andrew Dickson White, a respected s for teaching a dialect called PL/C had the unusual capability of never failing to compile any program, through the use of extensive automatic correction of many syntax errors and by converting any remaining syntax errors to output statements.

Another variant of PL/I was PL/S, the IBM systems programming language. IBM used PL/S to write the MVS operating system in the early 1970s. IBM uses an improved and renamed PL/S for internal work on current operating systems, OS/390 and now z/OS.

The C programming language is closely related to PL/I and PL/S.

PL/I was probably the first commercial language where the compiler was written in the language to be compiled. (The experimental language NELIAC achieved this at least five years prior, and there may have been others.)

The pioneering online airline reservation system Sabre is believed to be written in PL/I.

Mostly used on mainframes, PL/I also has versions for Microsoft Windows, AIX, OpenVMS, and Unix.


Example_Program:

Test: procedure options(main); declare My_String char(20) varying initialize('Hello, world!'); put skip list(My_String); end Test;

Read more »

Non User