Syntax-directed editor support for incremental consistency maintenance

Scott A. Vorthmann · SMARTech Repository (Georgia Institute of Technology) · 1990

Consistency maintenance is dependency-directed recompilation of a multi-component software system during development or maintenance. Incremental consistency maintenance requires an interactive setting, and a finer granularity of dependencies and processing than is possible with batch compilation technology. The technology of syntax-directed editors offers characteristics which are ideally suited to the task of incremental consistency maintenance. In particular, the use of attribute grammars to provide static semantic analysis has several specific advantages, including a fine granularity of dependencies and processing, and algorithms that update an attributed tree with a minimal amount of processing. However, several shortcomings of this approach have been identified. The described research addresses these shortcomings with extensions to the technology of syntax-directed editor generation. The principal extension is the addition of specific support for naming semantics in an SDE generator system. This support takes the form of a naming specification language (NSL), which extends the existing syntax and AG description language, and a kernel naming layer (KNL), which is incorporated into the editor kernel architecture. NSL supports the designation of name declaration and reference sites, the designation of productions that embody scopes, and specification of visibility of names between related scopes. NSL is highlighted by its powerful mechanisms for describing various visibility features. The KNL augments the syntax tree structure with additional edges from identifier usage sites to declaration sites. These edges provide efficient communication of semantic information (attributes) from declarations to references. The additional substrate edges, and the attribute propagation they support, introduce a coordination problem during incremental evaluation of the attributed substrate. An algorithm for performing efficient, coordinated attribute evaluation on this augmented substrate is presented as an important contribution of this thesis. The algorithm is an extension of a tree-based incremental evaluator due to Reps.

Read the paper · More papers on PaperTik