© 1990 by British Computer Society
Modular Attribute Grammars

Department of Computer Science, University of Waterloo, Waterloo, Ontario, Canada N2L 3G1
Attribute grammars provide a formal declarative notation for describing the semantics and translation of programming languages. Describing any real programming language is a significant software engineering challenge. From a software engineering viewpoint, current notations for attribute grammars have two flaws: tedious repetition of essentially the same attribute computations is inevitable, and the various components of the description cannot be decomposed into modules - they must be merged (and hence closely coupled) with the syntax specification. This paper describes a tool that generates attribute grammars from pattern-oriented specifications. These specifications can be grouped according to the separation of concerns arising from individual aspects of the compilation process. Implementation and use of the attribute grammar generate MAGGIE is described.
Received May 1988. revised January 1989.
* On leave from Department of Mathematics and Computer Science, Brandon University, Brandon, Manitoba, Canada R7A 6A9.
To whom correspondence should be addressed.
¶ Department of Computer Science, University of Waterloo, Waterloo, Ontario, Canada N2L 3G1