Incremental Static-Semantic Analysis for Object-Oriented Languages Using Door Attribute Grammars

Interactive programming environments in the tradition of the CorneU Program Synthesizer [TeR81] represent static semantic information as an attribution of the program syntax tree. The attribution is derived from the syntax tree, and is incrementally maintained as the user edits the program. The static semantic information may serve many purposes in the environment; as a base for incremental code generation, to give the user feedback on compile-time errors, and to provide advanced interactive support, e.g. context-sensitive editing and browsing. The design of the attribution is extremely important in order to obtain a system which works well in practice. It should be structured in a simple and natural way, not consume excessive storage, and it must allow efficient incremental updates. To obtain these goals we suggest the use of a semantic object structure as part of the attribution. This means attaching semantic objects to syntax nodes and allowing these objects to be linked to objects attached at other places in the syntax tree.

[1]  Ole-Johan Dahl,et al.  SIMULA 67 common base language, (Norwegian Computing Center. Publication) , 1968 .

[2]  Thomas Reps,et al.  Programming Techniques and Data Structures , 1981 .

[3]  Henk Alblas Incremental Attribute Evaluation , 1991, Attribute Grammars, Applications and Systems.

[4]  Thomas Reps,et al.  The synthesizer generator , 1984 .

[5]  Görel Hedin,et al.  An Object-Oriented Notation for Attribute Grammars , 1989, European Conference on Object-Oriented Programming.

[6]  Görel Hedin Incremental Attribute Evaluation with Side-effects , 1988, CC.

[7]  Kai Koskimies Object-Orientation in Attribute Grammars , 1991, Attribute Grammars, Applications and Systems.