APAREL(ID:365/apa004)

A PArse REquest Language 


for A PArse REquest Language

PL/I extension to provide BNF parsing routines, for IBM 360.


People:
Related languages
PL/I => APAREL   Extension of
APAREL => ISPL   Written using
APAREL => LSD   Written using

References:
  • Balzer, R. M. and D. J. Farber (1968). APAREL--a parse-request language. Santa Monica, Calif., Rand Corp. view details Abstract: SUMMARY
    This Memorandum describes APAREL, an extension to an algorithmic language (PL/I) that provides the pattern-matching capabilities normally found only in such special-purpose languages as SNOBOL4 and TMG. This capability is provided through parse-requests stated in a BNF-like format. These parse-requests form their own programming language with special sequencing rules. Upon successfully completing a parse-request, an associated piece of PL/I code is executed. This code has available for use, as normal PL/I strings, the various pieces (at all levels) of the parse. It also has available as normal PL/I variables, the information concerning which of the various alternatives were successful. Convenient facilities for multiple input-output streams, the initiation of sequences of parse-requests as a subroutine, and parse-time semantic checks are also included.
    APAREL has proven convenient not only as a general string manipulator but also in building a powerful SYNTAX and FUNCTION macro system, an algebraic language preprocessor debugging system, an on-line command parser, and a translator for Dataless Programming.
    Extract: Introduction
    This Memorandum describes a parsing capability embedded within the PL/I programming language. This extension allows users to specify the syntax of their parse-requests in a BNF-like language and the semantics associated with a successful parse-request in the PL/I language.
    The APAREL system has been designed for a wide range of parsing applications including macro expansion, symbol manipulation, on-line command parsing, analysis of programs, and translation of programming languages.
    This revised Memorandum, representing the actual implementation of the system, supersedes the authors' APAREL--A Parse-Request Language, The Rand Corporation, RM-5611-ARPA, October 1968.
    APAREL has been developed as a basic tool for use in man-machine communication studies at Rand under sponsorship of the Advanced Research Projects Agency.
  • Balzer, R.W. et al, "APAREL: A Parse Request Language", view details Abstract: APAREL is described: this language is an extension to an algorithmic language (PL/I) that provides the pattern-matching capabilities normally found only in special purpose languages such as SNOBOL4 and TMG. This capability is provided through parse-requests stated in a BNF-like format. These parse-requests form their own programming language with special sequencing rules. Upon successfully completing a parse-request, an associated piece of PL/I code is executed. This code has available for use, as normal PL/I strings, the various pieces (at all levels) of the parse. It also has available, as normal PL/I variables, the information concerning which of the various alternatives were successful. Convenient facilities for multiple input-output streams, the initiation of sequences of parse-requests as a subroutine, and parse-time semantic checks are also included. APAREL has proven convenient in building a powerful SYNTAX and FUNCTION macro system, an algebraic language preprocessor debugging system, an on-line command parser, a translator for Dataless Programming, and as a general string manipulator. DOI
          in [ACM] CACM 12(11) (Nov 1969). view details
  • Balzer, R. M.: The ISPL language specifications. Santa Monica, Calif.: The RAND Corporation 1971. (The RAND Corp. R-563-ARPA, August 1971 .) view details Abstract: The syntax and semantics of the Incremental System Programming Language (ISPL), designed for use on its own computer, the ISPL machine (described in R-562). Together, the language and the machine provide a complete programming laboratory environment. The syntax used to describe ISPL is APAREL (described in RM-5611), which is similar to BNF but allows imbedded alternatives. ISPL is incrementally compiled, resembles PL/I, and allows hierarchical systems to be built by providing capabilities for scheduling core and central processing unit resources, interrupt handling, and interprocess communication. Ports, the new interprocess communication facility (described in R-605), enables communication between a program and the files, terminals, physical devices, and monitor programs. Extensive debugging facilities include dynamic record verification of all pointers. The language specifically includes the facilities needed by the control program, and the machine provides many of the facilities normally implemented in software. External link: Online copy
          in [ACM] CACM 12(11) (Nov 1969). view details
  • Sammet, Jean E. "Brief survey of languages used for systems implementation" view details
          in [ACM] SIGPLAN Notices 6(10) October 1971 Proceedings of the SIGPLAN symposium on Languages for system implementation 1971, Lafayette, Indiana, United States; October, 1971 view details
  • Sammet, Jean E., "Roster of Programming Languages 1972" 17 view details
          in Computers & Automation 21(6B), 30 Aug 1972 view details
  • Sammet, Jean E. "Roster of Programming Languages for 1973" p147 view details
          in ACM Computing Reviews 15(04) April 1974 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 41 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 Computing Reviews 15(04) April 1974 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 ACM Computing Reviews 15(04) April 1974 view details
  • Library of Congress Subject Headings A266 view details
          in ACM Computing Reviews 15(04) April 1974 view details