



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Material Type: Lab; Class: STRUCTURE PROGRAMMING LANGS; Subject: Computer Science; University: University of Pittsburgh; Term: Fall 2003;
Typology: Lab Reports
1 / 7
This page cannot be seen from the preview
Don't miss anything!




Russell Bortz and David Allison Mike Bigrigg CS 1621 15 September 2003 The PL/I Programming Language The field of computers is constantly changing and evolving to produce machines that will improve virtually every aspect of daily life. Not only must the hardware and architecture of computers be improved upon, but the software that drives these machines must also be as efficient as possible. The advent of assembly language programming further stressed the importance to programmers of creating better ways to program computers. Each language has drawbacks and in order to improve upon these drawbacks, new languages are created. Programming Language One or PL/I was designed with the intentions of integrating applications and scientific programming. Just like every other programming language, it has certain strengths, weaknesses, and particular usages in the scheme of programming.
HISTORY
The history of high-level programming languages goes back about fifty years. In 1953, Nathaniel Rochester introduced the idea that modifiers, operation codes, and operands could be expressed with more meaningful symbols, which could then be translated by an assembler program back into machine language. This concept gave birth to the idea of assembly language. However, assembly language programming proved to be a cumbersome and impractical solution to machine language programming from the beginning. It was still a one-to-one ratio where one
statement generated one machine instruction, and it was awkward to use. Several high-level programming languages were soon created and in 1957, IBM released the first commercially available high-level language called FORTRAN^2 (Katzan 5). The languages created before PL/I were all suited towards a particular type of computing application. Scientific programmers mainly used Fortran and assembly language to accommodate their heavy need for arrays and floating-points. They belonged to the user group called Share, which rarely communicated with any designers of business applications. Users of business applications required character string and decimal data types, as well as easy input and output devices. They used the early form of the COBOL language before it was completely converted from assembly language. Scientific programmers and business application programmers were virtually isolated from each other in the beginning and specific programming languages to suit only their needs seemed to make perfect sense. However, by 1963, IBM realized that the programming needs of both parties were beginning to interleave. Scientists required efficient I/O to process large quantities of data, and people began to need arrays and floating-points for regression analysis in business applications (Sebesta 71). The PL/I programming language was also a product of IBM and it was the first multi- purpose language to be made commercially available. In 1963, a committee was formed of both scientific programmers and business application programmers, who began designing what would become the PL/I language. IBM and the scientific programming group, SHARE, formed a committee called the Advanced Language Development Committee, which later became known as the 3x3 Committee because there were 3 members from each group. PL/I was first referred to as Fortran VI, as it was originally devised to be merely a new version of the Fortran language. However, the idea of a new Fortran language was abandoned and the language in development
accomplished the goal of creating a language with both flexibility and run-time efficiency. Prior languages had either opted for one or the other to serve a specific need (Wilson 27-28).
WEAKNESSES
The paramount weakness of PL/I, generally speaking, is that it simply is too complex of a language to serve the modern needs of high-level programmers. With that said, the language virtually was a failure from the start. It never succeeded in replacing COBOL and Fortran and crippled the hopes of early designers as to the creation of a multipurpose language. “PL/I suffered from considerable teething problems and, indeed, without the massive backing of IBM, it would probably have died an early death. IBM’s support kept it alive but even they could not force users to accept it” (Wilson 29). The reason for the severe complexity of PL/I was that it simply tried to incorporate every known feature of programming, and even some brand new features, into one encompassing language. “PL/I, in contrast, attempted to have both run-time efficiency and flexibility, but the penalty it paid was language complexity” (Wilson 28). This complexity not only led many programmers to reject the language for reasons of difficulty, but it also made extremely large compilers necessary. These large compilers resulted in slower compile times and created more negative criticism from programmers (29). PL/I also suffered from poor implementation of some of its features such as allowing programs to create subprograms that would then execute concurrently. This was a poorly implemented feature along with some of the constructs. It created several new constructs for
concurrency, pointers, and exception handling, which were not designed very well and simply ended up creating new problems for the language (Sebesta 73).
USAGE
Despite the weaknesses of PL/I, it was an ambitious attempt at creating a comprehensive multipurpose language before there was hardly even any experience in the field. It was not a complete failure and actually enjoyed success for some time. “In terms of usage, PL/I must be considered at least a partial success. In the 1970’s, it enjoyed significant use in both business and scientific applications. It was also widely used during that time as an instructional vehicle in colleges…” (Sebesta 73). There were a considerable amount of users of the language due to the backing of IBM, however, many programmers simply did not want to give up COBOL and Fortran completely. The language itself is set up in a block-structure. All of the functions, subroutines, and main programs are set up as distinct modules of code and referred to as PROCEDUREs. The source program in PL/I is interpreted as a continuous character stream and this allows for more than one statement to be included on a line. This practice, however, is considered to be poor coding in terms of readability. Furthermore, the inclusion of blank characters into interpretation of the code can result in errors, as blank spaces cannot be imbedded in a constant or identifier. PL/I is a non-sequential language in that it provides a “GOTO” command for conditional execution of instructions. It contains a “DECLARE” statement for defining storage areas as well as output and input files. Looping in PL/I is done by means of a “DO” statement that has the
Works Cited Katzan, Harry. A PL/I Approach To Programming Languages. Philadelphia: Auerbach Publishers Inc., 1972. Sebesta, Robert W. Concepts Of Programming Languages. Sixth Ed. Boston: Pearson Education, 2004. Wilson, Leslie B. and Robert G. Clark. Comparative Programming Languages. Third Ed. New York: Pearson Education Limited, 2001.