Partridge(ID:7945/)


Parser generator language for Harvey


Related languages
Partridge => HARVEY   Written using

References:
  • Christopher, TW "PARTRIDGE User's Manual" Quarterly Report No 32 Institute for Computer Research, The University of Chicago February 1 1972 view details
  • Christopher, Thomas W. "Development of the system programming language: HARVEY" pp19-21 view details Abstract: The development, use and evaluation of a language for system programming in the Minicomputer Interfacing Support System (MISS) Project. August, 1973

    The language, HARVEY, has been implemented and is currently being used in the development of MOM (Minicomputer Operations Monitor) software in Project MISS.

    The MISS project is an attempt to provide a virtual time-sharing system to laboratory minicomputers at the University of Chicago. The central computer in the network is a PDP-11/35, referred to as MOM. To write the software for MOM, we are using our own system programming language, HARVEY.
    There were two potentially competitive languages when we began the development of HARVEY. PEESPOL was rejected because we lacked adequate access to a Burroughs B6700 on which the compiler is implemented. BLISS-11 was rejected for two reasons: (1) the BLISS-11 compiler was not yet completed, and (2) we were uncertain that the PDP-10 to which we had access would have the memory capacity to run the BLISS compiler when it was completed.
    The design of HARVEY was based on our need for security. We required a language that was both usable and quickly implementable. To meet these requirements we copied the syntax and semantics of an already extant programming language, BLISS [3]. HARVEY is BLISS-like, but by no means an implementation of ELISS. We omitted a large number of the features of BLISS and added constructs of our own. The similarities, nonetheless, are pervasive. On the semantic level both require explicit dereferencing; on the syntactic level both are GOTO-less.
    Design of the HARVEY compiler was also influenced by our need for security. The compiler was written in SNOBOL 4 [SPITROL dialect). It was built around a parser generated by PARTRIDGE, our SLR(1) parser generator [see potential documentation]. HARVEY and PARTRIDGE had a mutual influence: HARVEY was required to have an SLR(1) grammar; PARTRIDGE was required to produce parsers with error recovery.
    We implemented two versions of the HARVEY compiler. The first was designed to facilitate an informal proof of correctness. No attempt was made to produce good code. The advantage was that within five hours of receipt of the PDP- 11 we were running HARVEY programs. The compiler was running immediately. The second version was designed to be an extension of the first. changing little but the code generation routines. The second version required another man month of effort and reduced the size of the generated object code by approximately 50%. We a r e currently gathering data on the most obvious peephole optimizations left to make and expect to spend another half man month on a version 2.5 of the compiler which will produce slightly better code. Version 2 is adequate for our purposes; version 2. 5 will perform all the optimizations we believe to be warranted.
    We expect our experience with HARVEY will result in several contributions to the programming language literature. First, we will provide an evaluation of HARVEY as an influence (for good or evil) on the MISS project.
    Second, we will provide an evaluation of the HARVEY compilers. We are gathering data on the efficacy of the optimizations. Third, we are providing documentation on PARTRIDGE -- in particular, on the error recovery facilities.

          in SIGPLAN Notices 8(06) June 1973 SPECIAL ISSUE: Abstracts in programming language-related research view details
  • Christopher, TW "Error recovery in PARTRIDGE - an SLR(1) Parser Generator" Computer Science Conference Coumbus Ohio 1973 view details
          in SIGPLAN Notices 8(06) June 1973 SPECIAL ISSUE: Abstracts in programming language-related research view details