skip to main content
10.1145/800004.807940acmconferencesArticle/Chapter ViewAbstractPublication PagesplanConference Proceedingsconference-collections
Article

TCOLAda and the “Middle End” of the PQCC Ada compiler

Published:01 January 1980Publication History

ABSTRACT

A compiler is traditionally partitioned into a (mostly) machine independent Front End which performs lexical, syntactic, and semantic analysis, and a machine dependent Back End which performs optimization and code generation. In the Ada compiler being implemented at Carnegie-Mellon University in the PQCC project, it is useful to identify a set of phases occurring at the start of the Back End - i.e., “Middle End” - after semantic analysis but before optimization. These phases, known collectively as “CWVM” (an abbreviation for “Compiler Writer's Virtual Machine”) make basic representational choices and reflect these in an expanded program tree. This paper describes both TCOLAda - the intermediate language interface produced by the Front End - and the phases comprising CWVM. TCOLAda is a graph structured high level representation of the source program which includes both the symbol table and the program tree. The CWVM phases perform transformations of the TCOLAda graph which fall into three categories: language oriented (e.g., expansion of checking for constructs such as array indexing), virtual machine oriented (e.g., translation of up-level addressing into “display” vector accesses), and actual machine oriented (e.g., expansion of component selection into address arithmetic).

References

  1. 1.Proc. of SIGPLAN Symposium on the Ada Programming Language, December 1980.Google ScholarGoogle Scholar
  2. 2."Types and Type Resolution in Ada: an Implementation Report", in {ACM 80}.Google ScholarGoogle Scholar
  3. 3.B.M. Brosgol, J.M. Newcomer, D.A. Lamb, D.R. Levine, M.S. Van Deusen, W.A. Wulf. TCOLAda: Revised Report on an Intermediate Representation for the Preliminary Ada Language. Technical Report CMU-CS-80-105, Carnegie-Mellon University, February 1980.Google ScholarGoogle Scholar
  4. 4.M. Dausmann, S. Drossopoulou, G. Goos, G. Persch, G. Winterstein. AIDA-An Informal Introduction, University of Karlsruhe, Germany, February 1980.Google ScholarGoogle Scholar
  5. 5.Digital Equipment Corporation.VAX-11/780 Architecture Handbook, 1977.Google ScholarGoogle Scholar
  6. 6.U.S. Department of Defense. Reference Manual for the Ada Programming Language. Proposed Standard Document, July 1980.Google ScholarGoogle Scholar
  7. 7.B.W. Leverett. The Packing Problem in Optimizing Compilers, Ph.D. Thesis. Carnegie-Mellon University, to be published.Google ScholarGoogle Scholar
  8. 8.B.W. Leverett, R.G.G. Cattell, S.O. Hobbs, J.M. Newcomer, A.H. Reiner, B.R. Schatz, W.A. Wulf. "An Overview of the Production-Quality Compiler-Compiler Project", Computer, Vol. 13, No. 8, August 1980.Google ScholarGoogle Scholar
  9. 9.R.W. Scheifler. "An Analysis of Inline Substitution for a Structured Programming Language", Communications of the ACM 20(9): 647-654, Sept. 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.M. Sherman, M. Borkan. "A Flexible Semantic Analyzer for Ada," in {ACM 80}.Google ScholarGoogle Scholar
  11. 11.C. Wetherell and A. Shannon. LR: Automatic Parser Generator and LR(1) Parser, Lawrence Livermore Laboratory, Preprint UCRL-82926, June 1979.Google ScholarGoogle Scholar
  12. 12.W. Wulf, P. Feiler, J. Zinnikas, R. Brender. "A Quantitative Technique for Comparing the Quality of Compiler Code Generation", Tech. Report, Carnegie-Mellon Univ. (to be published).Google ScholarGoogle Scholar

Index Terms

  1. TCOLAda and the “Middle End” of the PQCC Ada compiler

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          SIGPLAN '80: Proceedings of the ACM-SIGPLAN symposium on The ADA programming language
          January 1980
          242 pages
          ISBN:0897910303
          DOI:10.1145/800004

          Copyright © 1980 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 January 1980

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article