Pl1 Programming Language Encyclopedia Article

Pl1 Programming Language

The following sections of this BookRags Literature Study Guide is offprint from Gale's For Students Series: Presenting Analysis, Context, and Criticism on Commonly Studied Works: Introduction, Author Biography, Plot Summary, Characters, Themes, Style, Historical Context, Critical Overview, Criticism and Critical Essays, Media Adaptations, Topics for Further Study, Compare & Contrast, What Do I Read Next?, For Further Study, and Sources.

(c)1998-2002; (c)2002 by Gale. Gale is an imprint of The Gale Group, Inc., a division of Thomson Learning, Inc. Gale and Design and Thomson Learning are trademarks used herein under license.

The following sections, if they exist, are offprint from Beacham's Encyclopedia of Popular Fiction: "Social Concerns", "Thematic Overview", "Techniques", "Literary Precedents", "Key Questions", "Related Titles", "Adaptations", "Related Web Sites". (c)1994-2005, by Walton Beacham.

The following sections, if they exist, are offprint from Beacham's Guide to Literature for Young Adults: "About the Author", "Overview", "Setting", "Literary Qualities", "Social Sensitivity", "Topics for Discussion", "Ideas for Reports and Papers". (c)1994-2005, by Walton Beacham.

All other sections in this Literature Study Guide are owned and copyrighted by BookRags, Inc.

Pl1 Programming Language

The PL1 programming language is a third-generation, procedural programming language that bears some resemblance to FORTRAN and BASIC. It is a general-purpose programming language that is versatile enough to be used in commercial, scientific, and technical applications.

PL1 was developed by IBM in the early 1960s in an attempt to combine the best features of Algol, FORTRAN, and COBOL into a new, all-purpose language. It was originally named New Programming Language (NPL) but was soon changed to PL1 to avoid confusion with the National Physical Laboratory in England.

PL1 is a comprehensive language that includes a number of common programming concepts. It is block-oriented, which helps programmers modularize their applications. PL1 supports standard control structures such as SELECT-WHEN-OTHERWISE and DO-WHILE. There is also built-in support for many common functions, including arithmetic computation, mathematical computation, string manipulation, precision handling, input/output (I/O), storage control, and date/time manipulation.

In addition to containing many of the best features of other programming languages, PL1 also has some unique features. The language is freeform text and has no reserved keywords. There are some words with specific meanings in specific instances, but PL1 determines the meaning of words from the context of their use. In addition PL1 defines the precision of its data types without regard to the operating system or hardware. These precision data types include real, complex, floating-point, fixed-point, signed, unsigned, binary, decimal, character, bit, graphic, and string.

Another one of PL1's novel features is the definition of four different storage classes. The data type of an object usually determines whether to use automatic, static, controlled, or based storage. The default storage class is automatic, which is allocated on entry to a block and freed upon exit. Static storage exists throughout the life of the program. Controlled storage must be explicitly allocated by the program. Based storage provides a mapping for storage otherwise allocated or referenced, or may also be explicitly allocated and freed.

One of PL1's strongest areas is exception handling of error conditions detected by hardware, PL1 itself, or the operating system. PL1 allows exceptions to be intercepted and handled without interrupting execution of the program.

In order to serve a variety of programming purposes, PL1 evolved into a complex language. The complexity of the language as well as the supporting tools and diagnostics made writing and debugging PL1 programs somewhat burdensome. As newer programming languages have arrived, the popularity of PL1 has declined.