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:
Related projects: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.
The APPLAB system The Mjolner/Orm system
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)]