PL/C(ID:650/plc001)

Programming Language/Cornell 


A large subset of PL/I from Cornell University, aimed at novice programmers.
Implementated on IBM 370.






Places
Related languages
CUPL => PL/C   Replacement for
PL/I => PL/C   Subset
PL/C => PL/CD   cross-compiler for
PL/C => PL/CI   cross-compiler for
PL/C => PL/CS   Evolution of
PL/C => PL/CT   Extension of
PL/C => PL/CT   Subset
PL/C => PLCV   cross-compiler for

References:
  • Wilcox, T.R. "Code generation in PL/C" Research Report 70-89, Dept. Comput. Sci., Cornell U., Sept. 1970. view details
  • Conway, R.W., Morgan, H.L., Wagner, R.A., and Wilcox, T.R. "PL/C, the Cornell compiler for PL/I. User's guide to release 6" Dept. Comput. Sci., Cornell U. Aug. 1971. view details
  • Conway, Richard W ., and Wilcox, Thomas R ., "Design and Implementation of a Diagnostic Compiler for PL/I", Research Report 71-107, Dept . of Computer Science, Cornell University , Ithaca, N .Y ., September 1971 . view details
  • Morgan, H.L., and Wagner, R.A. "PL/C-the design of a high-performance compiler for PL/I" pp503-510 view details
          in [AFIPS] Proceedings of the 1971 Spring Joint Computer Conference SJCC 38 view details
  • Sammet, Jean E., "Roster of Programming Languages 1972" 215 view details
          in Computers & Automation 21(6B), 30 Aug 1972 view details
  • Conway, Richard W. and Wilcox, Thomas R. "Design and implementation of a diagnostic compiler for PL/I" view details Abstract: PL/C is a compiler for a dialect for PL/I. The design objective was to provide a maximum degree of diagnostic assistance in a batch processing environment. For the most part this assistance is implicit and is provided automatically by the compiler. The most remarkable characteristic of PL/C is its perseverance—it completes translation of every program submitted and continues execution until a user-established error limit is reached. This requires that the compiler repair errors encountered during both translation and execution, and the design of PL/C is dominated by this consideration. PL/C also introduces several explicit user-controlled facilities for program testing. To accommodate these extensions to PL/I without abandoning compatibility with the IBM compiler, PL/C permits “pseudo comments”—constructions whose contents can optionally be considered either source text or comment. In spite of the diagnostic effort PL/C is a fast and efficient processor. It effectively demonstrates that compilers can provide better diagnostic assistance than is customarily offered, even when a sophisticated source language is employed, and that this assistance need not be prohibitively costly.
          in [ACM] CACM 16(03) March 1973 view details
  • Holt, Richard C. "Teaching the fatal disease: (or) introductory computer programming using PL/I" pp8-23 view details
          in ACM SIGPLAN Notices 8(5) May 1973 view details
  • Stock, Marylene and Stock, Karl F. "Bibliography of Programming Languages: Books, User Manuals and Articles from PLANKALKUL to PL/I" Verlag Dokumentation, Pullach/Munchen 1973 466 view details Abstract: PREFACE  AND  INTRODUCTION
    The exact number of all the programming languages still in use, and those which are no longer used, is unknown. Zemanek calls the abundance of programming languages and their many dialects a "language Babel". When a new programming language is developed, only its name is known at first and it takes a while before publications about it appear. For some languages, the only relevant literature stays inside the individual companies; some are reported on in papers and magazines; and only a few, such as ALGOL, BASIC, COBOL, FORTRAN, and PL/1, become known to a wider public through various text- and handbooks. The situation surrounding the application of these languages in many computer centers is a similar one.

    There are differing opinions on the concept "programming languages". What is called a programming language by some may be termed a program, a processor, or a generator by others. Since there are no sharp borderlines in the field of programming languages, works were considered here which deal with machine languages, assemblers, autocoders, syntax and compilers, processors and generators, as well as with general higher programming languages.

    The bibliography contains some 2,700 titles of books, magazines and essays for around 300 programming languages. However, as shown by the "Overview of Existing Programming Languages", there are more than 300 such languages. The "Overview" lists a total of 676 programming languages, but this is certainly incomplete. One author ' has already announced the "next 700 programming languages"; it is to be hoped the many users may be spared such a great variety for reasons of compatibility. The graphic representations (illustrations 1 & 2) show the development and proportion of the most widely-used programming languages, as measured by the number of publications listed here and by the number of computer manufacturers and software firms who have implemented the language in question. The illustrations show FORTRAN to be in the lead at the present time. PL/1 is advancing rapidly, although PL/1 compilers are not yet seen very often outside of IBM.

    Some experts believe PL/1 will replace even the widely-used languages such as FORTRAN, COBOL, and ALGOL.4) If this does occur, it will surely take some time - as shown by the chronological diagram (illustration 2) .

    It would be desirable from the user's point of view to reduce this language confusion down to the most advantageous languages. Those languages still maintained should incorporate the special facets and advantages of the otherwise superfluous languages. Obviously such demands are not in the interests of computer production firms, especially when one considers that a FORTRAN program can be executed on nearly all third-generation computers.

    The titles in this bibliography are organized alphabetically according to programming language, and within a language chronologically and again alphabetically within a given year. Preceding the first programming language in the alphabet, literature is listed on several languages, as are general papers on programming languages and on the theory of formal languages (AAA).
    As far as possible, the most of titles are based on autopsy. However, the bibliographical description of sone titles will not satisfy bibliography-documentation demands, since they are based on inaccurate information in various sources. Translation titles whose original titles could not be found through bibliographical research were not included. ' In view of the fact that nany libraries do not have the quoted papers, all magazine essays should have been listed with the volume, the year, issue number and the complete number of pages (e.g. pp. 721-783), so that interlibrary loans could take place with fast reader service. Unfortunately, these data were not always found.

    It is hoped that this bibliography will help the electronic data processing expert, and those who wish to select the appropriate programming language from the many available, to find a way through the language Babel.

    We wish to offer special thanks to Mr. Klaus G. Saur and the staff of Verlag Dokumentation for their publishing work.

    Graz / Austria, May, 1973
          in ACM SIGPLAN Notices 8(5) May 1973 view details
  • Kochenburger, Ralph J. "Introduction to PL/1 and PL/C programming", Santa Barbara, Hamilton, c1974 view details
          in ACM SIGPLAN Notices 8(5) May 1973 view details
  • Kochenburger, Ralph J. and Turcio, Carolyn J. "Introduction to PL/1 and PL/C programming : with commentary on CPS-PL/1" Santa Barbara (Calif.) : Hamilton, 1974. view details
          in ACM SIGPLAN Notices 8(5) May 1973 view details
  • Worona, Steven et al, "User's Guide to PL/C" Cornell, June 1974 view details External link: Online at UIC Abstract: PL/C was designed to permit efficient instruction in the PL/I
          language.    It   provides  high-speed  compilation,  reasonably
          efficient execution,  extraordinary  diagnostic  assistance  and
          upward  compatibility  with  the IBM F-level compiler.  The PL/C
          compiler, but not this  user's  Guide,  is  copyright  c1975  by
          Cornell University.

             PL/C does not support the  full  PL/I  language.   The  major
          omissions in Release 7.6 are:
              - list processing
              - multi-tasking
              - compile-time facilities (except for INCLUDE and a
                             non-PL/I-type macro processor)
              - REGIONAL auxiliary files
          There are other minor omissions described in Sections D -  H  of
          this Guide.

             Some features have been added to PL/C that are  not  part  of
          PL/I.   These  are  intended,  for  the  most  part,  to provide
          additional diagnostic facilities.  They include special  options
          on  the PUT statement, the FLOW condition, statements to control
          FLOW and CHECK printing, and pseudo-comments that can optionally
          be  converted to source text.  These pseudo-comments can be used
          to shelter the incompatible PL/C diagostic features  so  that  a
          program can still be run under the PL/I(F) compiler.

             This user's Guide is not intended  to  teach  a  beginner  to
          write  programs  in  PL/C.   It  assumes that the reader already
          knows PL/I, or is in the process of learning the  language  from
          another   source.   (See  Section  M  for  a  list  of  relevant
          textbooks.)  This Guide describes how PL/C differs from PL/I(F),
          and gives information necessary to use PL/C and interpret output
          provided by PL/C.  Except as noted  to  the  contrary,  material
          applies to both the OS and DOS versions of PL/C.
          in ACM SIGPLAN Notices 8(5) May 1973 view details
  • Worona, Steven "PL/CT, another approach to two problems in interactive PL/I" pp39-44 view details
          in SIGPLAN Notices 11(01) Jan 1976 view details
  • Conway, R. and Gries, D. "An introduction toprogramming - a structured approach using PL/I and PL/C" Winthrop, Cambridge, MA, 1979, 135-137. view details
          in SIGPLAN Notices 11(01) Jan 1976 view details
  • University of Illinois in Chicago: "A Student Guide to PL/C at UIC" 1984 view details External link: Online at UIC Abstract: PL/C  is  a so-called "student compiler." It does not contain
        the full power of the original language PL/I, from which PL/C  is
        taken.   On  the  other  hand,  PL/C  attempts  to  give  a  more
        understandable set of error messages than the full PL/I language;
        and will even attempt to correct certain  minor  errors.  Options
        are  also  available  so  that the student can obtain listings of
        internal  variables  and   program   parameters,   when   program
        termination occurs.

          in SIGPLAN Notices 11(01) Jan 1976 view details
  • Flass, Peter "Languages Related to PL/I" in "The PL/I Language" view details External link: Online copy at Peter Flass's PL/1 site
          in SIGPLAN Notices 11(01) Jan 1976 view details
  • Rudan, John W. "The History of Computing at Cornell" Cornell University (digital) 29-Jan-2004 view details Extract: More about the Use of CORC
    Instructional Computing
    More about the Use of CORC
    Although Lesser provides some interesting information
    about the use of the Burroughs 220 and the
    Control Data 1604 computer for course work by students,
    additional information may provide a better
    sense of the practices at the time and the load volume
    generated. When the CORC process started, it could
    be considered rather archaic?students did not prepare
    their own input but wrote their programs on specially
    prepared coding sheets that facilitated both the writing
    and the transfer to punch cards by professional
    keypunch operators. Figure 2 gives a sense of the
    situation.
    The original caption for this pictorial in a Cornell
    Computing Center publication circa 1963 was:
    With the CORC simplified computing language,
    all Cornell students can make use of
    the Computing Center. After a student has
    completed his program descriptions, it is
    punched on cards by the center staff; run
    though the computer; then returned to the
    center laboratory for correction and resubmission
    by the students when necessary.
    [...]
    At the time it was the practice to record initial runs,
    that is the first run after the program deck was
    punched by keypunch staff, and the reruns, which
    were subsequent runs after corrections were made by
    students and until the program produced the expected
    results. One measure of the growth is that initial runs
    increased by 2.5 times from 1962?63 to 1965?66.
    Reruns showed a four-fold increase over this same
    period. These increases give witness to the increasing
    use of the computer in the instructional programs at
    the university. Extract: CORC, CUPL, PL/C
    Introduction of PL/C
    One of the primary languages for introductory computing
    instruction changed from CUPL to PL/C.
    Conway and his various associates, who had developed
    CORC in the early 1960s then CUPL in the late
    1960s, now followed with PL/C as the language of
    choice for this purpose. (CORC was used from 1962 to
    1966 on both the Burroughs 220 and the Control Data
    1604, while CUPL was used from 1965 to 1969 on
    both the Control Data 1604 and IBM 360/65.)
    Adopting PL/C was in keeping with the computing
    industry trend to adopt the PL/I language for more
    applications. IBM commissioned Conway13 and his
    associates to develop a student version of PL/I, which
    was named PL/C, and provided the initial support that
    was also supplemented by support from Seimens. The
    development of PL/C was built on the previous experience
    noted above as well as new technologies, so
    when completed it was the first high-performance
    compiler with advanced error-correcting techniques
    for a subset of the PL/I language. Once under way, the
    project was partially funded by income from sales. In
    1970–71 more than 100 copies of PL/C had been distributed,
    and 60 sales had been made. Later in the
    decade, at its peak, PL/C was used at 250 universities
    around the world, according to Conway. Members of
    the team that produced the first PL/C release were
    Conway, Howard Morgan, R. Wagner, and five graduate
    students in Computer Science, the principal one
    being Tom Wilcox.
          in SIGPLAN Notices 11(01) Jan 1976 view details