Descriptional Composition of Compiler Components

Abstract

New machine architectures and new programming languages are always appearing, and thus the need for new compilers continues. Compiler writers developing new and/or experimental compilers face competing pressures when designing their large-scale structure. On the one hand, a more modular structure will make it easier to maintain, modify or reuse pieces of the compiler. A more modular compiler is more likely to be correct, and reusable compiler components lead to consistent semantics among the compilers using them. On the other hand, a highly modular structure may lead to inefficiencies in implementation. This dissertation presents a declarative compiler description language, APS, and a new method for descriptional composition. The language, based on a variant of attribute grammars, contains a number of features that aid compiler writers in factoring descriptions so that each concept can be expressed separately. Both a compiler for Oberon2 and a front-end for APS itself have been written in APS. The back-end of the Oberon2 compiler consists of a translation to a form of the "GCC tree" intermediate representation. Another module gives the translation from this form to source-level C text. A prototype compiler has been developed for APS that supports descriptional composition. The Oberon2 compiler is the first successful use of descriptional composition for a realistically complex system, and demonstrates the effectiveness of combining the new APS description language and the new algorithm for descriptional composition presented in this dissertation.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Sep 01, 1996
Accession Number
ADA637049

Entities

People

  • John T. Boyland

Organizations

  • University of California, Berkeley

Tags

Communities of Interest

  • C4I
  • Engineered Resilient Systems

DTIC Thesaurus Topics

  • Algorithms
  • Compilers
  • Complex Systems
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Formal Languages
  • Grammars
  • Language
  • Linguistics
  • Lisp Programming Language
  • Machine Languages
  • Models
  • Operating Systems
  • Programming Languages
  • Prototypes
  • Software Development

Fields of Study

  • Computer science

Readers

  • Computational Linguistics
  • Database Systems and Applications