Optimizing implementation of aggregates in the compiler specification system MAGIC

  • A. Poetzsch-Heffter
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 371)


The paper describes the implementation concept including optimizing transformations of the aggregate handling in the MAGIC System. The MAGIC System is a system for specification and rapid prototyping of compilers developped at the Technical University of Munich. One of its main features is a powerful functional specification language based on an extension of attribute coupled grammars [GaG84]. For the specification of structured symboltables, the language provides the generic abstract datatype aggregate.

As the user may handle aggregates like any other values, the system must provide the mapping of aggregate values to objects in the storage and of functions to storage changing procedures. This optimizing implementation mapping consists of three parts. First, all aggregate occurrences are determined and their dependencies are analysed. Then the algorithm tries to refine the attribute dependencies, so that reading operations to an aggregate-valued attribute preceed writing operations to this attribute. Finally, the functions are replaced by the corresponding operations that operate on a shared hashtable.


Rapid Prototype Dependency Graph List Type Aggregate Type Attribute Grammar 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [BaT84]
    G. Bartmuß, S. Thürmel: MUG-Tutorial; Internal Report; Technical University of Munich; 84Google Scholar
  2. [BaW81]
    F.L. Bauer, H. Wössner: Algorithmische Sprache und Programmentwicklung; Springer Verrlag; 81Google Scholar
  3. [Bjö80]
    D. Björner: Towards a Formal Description of Ada; LNCS 98; Springer Verlag; 80Google Scholar
  4. [Gan79]
    H. Ganzinger: On Storage Optimization for Automatically Generated Compilers; LNCS Vol. 67, pp 132–141Google Scholar
  5. [GaG84]
    H. Ganzinger, R. Giegerich, et al.: Attribute Coupled Grammars: SIGPLAN 84 Symp. on Compiler Construction; 84Google Scholar
  6. [Har86]
    R. Harper: Introduction to Standard ML; Dep. of Computer Science, University of Edinburgh; Technical Report ECS-LFCS-86-14Google Scholar
  7. [HoT86]
    R. Hoover, T. Teitelbaum: Efficient Incremental Evaluation of Aggregate Values in Attribute Grammars; ACM Proc. of the 86 SIGPLAN Symposium on Compiler ConstructionGoogle Scholar
  8. [Kas87]
    U. Kastens: Lifetime Analysis for Attributes; Acta Informatica 24; 1987, pp.633–651Google Scholar
  9. [KeW76]
    K. Kenedy, S. Warren: Automatic Generation of Efficient Evaluators for Attribute Grammars; 3rd ACM Symposium on Principles of Programming Languages, Atlanta; 76Google Scholar
  10. [KLP88]
    J. Knopp, A. Liebl, A. Poetzsch-Heffter: MAGIC — An Interactive Compiler Specification System; Internal Report; Technical University Munich; 88Google Scholar
  11. [Ple88]
    F. Plenk: Optimierende Implementierungstransformation für funktionale Attributgrammatiken; Diplomarbeit; Technical University of Munich; 88Google Scholar
  12. [Poe88]
    A. Poetzsch-Heffter: Report on the MAGIC Specification Language; to appear december 88Google Scholar
  13. [Räi86]
    K.-J. Räihä: A Globalizing Transformation for Attribute Grammars; ACM Proc. of the 86 SIGPLAN Symposium on Compiler ConstructionGoogle Scholar
  14. [UDP82]
    J. Uhl, et al.: An Attribute Grammar for the Semantic Analysis of Ada; LNCS 139; Springer Verlag; 82Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1989

Authors and Affiliations

  • A. Poetzsch-Heffter
    • 1
  1. 1.Institut für InformatikTechnische Universität München8 München 2Federal Republic of Germany

Personalised recommendations