Go up. Go to department page

Object-Oriented Attribute Grammars

Lund Institute of Technology, Department of Computer Science, SDE Research

Görel Hedin


We are interested in being able to easily specify the static semantics of languages, to allow fast and compact evaluators to be generated from such specifications, to support incremental evaluation, and to use the static semantics information in language-based editing systems. In particular, we are interested in supporting object-oriented languages that have fairly complex non-local dependencies resulting from language constructs such as inheritance and qualified access. Coming from a tradition of object-oriented programming it has also been natural to design the specification languages in an object-oriented way. In particular, to view an abstract syntax tree as a tree of objects, to view nonterminals and productions as abstract and concrete classes over these objects, and to support attributes that are references to other nodes in the syntax tree.

The research has resulted in the following main technologies:

  • Object-Oriented Notation for Attribute Grammars. The generalization of the non-terminal/production to a class hierarchy. Implementation of demand evaluation based on virtual functions. Used in the Mjolner/Orm and APPLAB systems.
  • Door Attribute Grammars. A technology supporting declarative specification of attributions that contain objects and references. The resulting attributions can be efficiently updated incrementally, and have been successfully applied to describe and implement incremental static-semantics for object-oriented languages. Implementation of evaluators is partly automatic. A preliminary variant of these grammars were used in the Mjolner/Orm system.
  • Reference Attributed Grammars. Similar to Door AGs in that they support reference attributes. Allows non-incremental evaluators to be implemented automatically (using demand evaluation). Do not currently support incremental evaluation. Useful for describing complex static-semantics including support for object-oriented language constructs. Used in the APPLAB system.
  • Related projects:
  • The APPLAB system
  • The Mjolner/Orm system
  • Publications

    G. Hedin
    Reference Attributed Grammars
    To appear in Informatica.
    [Abstract (html)]
    An earlier version of this paper was published at WAGA'99. [Abstract etc. (html)]

    Görel Hedin
    An Overview of Door Attribute Grammars
    International Conference on Compiler Construction (CC'94), pp 31-51. LNCS 786, Springer Verlag. 1994.
    An overview article.
    [ps, 169 kB]

    Görel Hedin
    A Door Attribute Grammar for an Object-Oriented Language
    Technical Report LU-CS-TR:94-134, 26 pages. Dept of Computer Science. Lund University. 1994.
    An example Door AG.
    [ps, 189 kB]

    Mattias Ljunggren
    Implementation av specifikationsspråk för inkrementell semantisk analys
    Master's Thesis. LU-CS-EX:94-9. Dept. of Computer Science, Lund University, 1994. In Swedish.
    About an implementation of Door AGs.

    Görel Hedin
    An object-oriented view on attribute grammars
    Chapter 31 in Object-Oriented Environments: The Mjolner Approach, pp 470-480. Knudsen et al. (Eds.), Prentice Hall, 1993.
    This paper describes how ordinary AGs may be viewed as definitions in an object-oriented specification language, and discusses the advantages of such a view. Door AGs are an extension to this AG notation.
    [Info on book (html)]

    Görel Hedin
    Incremental name analysis for object-oriented languages
    Chapter 32 in Object-Oriented Environments: The Mjolner Approach, pp 481-496. Knudsen et al. (Eds.), Prentice Hall, 1993.
    This paper describes the common problems in name analysis occurring for OO languages like Simula, BETA, Eiffel, and C++. A graph-based technique for representing such information is described and different techniques for updating such information incrementally are compared.
    [Info on book (html)]

    Görel Hedin
    Using door attribute grammars for incremental name analysis
    Chapter 33 in Object-Oriented Environments: The Mjolner Approach, pp 497-510. Knudsen et al. (Eds.), Prentice Hall, 1993.
    This paper describes how the graph-based name analysis can be described declaratively using door attribute grammars.
    [Info on book (html)]

    W. Burghard, M. Nilsson.
    Applications of Door Attribute Grammars
    Master's Thesis. Dept. of Computer Science. Lund University. 1993.
    [ps, 877 kB]

    W. Burghard and M. Nilsson.
    Translation of OOSL constructs to Simula and BETA
    Technical note. Dept. of Computer Science. Lund University. 1993.
    [ps, 190 kB]

    Görel Hedin
    Incremental Semantic Analysis
    Ph.D. Thesis. LUTEDX/(TECS-1003), 276 pages. Dept. of Computer Science, Lund University. 1992.
    A thorough description of Door AGs and incremental static-semantic analysis of OO languages.
    [Abstract (html)]. Contact the author for copies.

    Görel Hedin
    Incremental Static-Semantic Analysis for Object-Oriented Languages using Door Attribute Grammars
    In Alblas and Melichar (Eds): Attribute Grammars, Applications and Systems. International Summer School SAGA, pp 374-379. LNCS 545, Springer-Verlag, June 1991.
    [ps, 101 kB]

    Görel Hedin
    An Object-Oriented Notation for Attribute Grammars
    In Proceedings of the 3rd European Conference on Object-Oriented Programming (ECOOP'89), S. Cook (Ed.), British Informatics Society Ltd., Nottingham, 329-235, 1989.
    [Abstract (html)]

    Görel Hedin
    Incremental Attribute Evaluation with Side-effects
    In Hammer (Ed.): Compiler Compilers and High Speed Compilation, pp 175-189. LNCS 371, Springer-Verlag, October 1988.
    Presents an earlier version of Door AGs.
    [Abstract (html)]


    Last modified: August 19, 1999