Generating editing environments based on relations and attributes
- 1 August 1986
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 8 (4) , 577-608
- https://doi.org/10.1145/6465.6512
Abstract
The ability to generate language-based editors depends on the existence of a powerful, language-independent model of editing. A model is proposed in which programs are represented as attributed abstract-syntax trees with an associated relational database. Relations can depend on the state of the attributed tree, and attributes can depend on the values in relations, provided there are no circular dependencies. The power and the limitations of relational operations are demonstrated with respect to the support of static-semantic checking, anomaly detection, an interrogation facility, and the ability to define alternative program displays. The advantages of the hybrid system over both the purely relational and purely attribute-based systems are presented, and new algorithms are given for query evaluation and incremental view updating motivated by the efficiency requirements of interactive editing under the defined model. A prototype implementation of an editor generator is described, and suggestions for future research are made.Keywords
This publication has 9 references indexed in Scilit:
- Attribute propagation by message passingPublished by Association for Computing Machinery (ACM) ,1985
- Data Structures and Network AlgorithmsPublished by Society for Industrial & Applied Mathematics (SIAM) ,1983
- Testing attribute grammars for circularityActa Informatica, 1982
- Ordered attributed grammarsActa Informatica, 1980
- Dave—a validation error detection and documentation system for fortran programsSoftware: Practice and Experience, 1976
- The design and implementation of INGRESACM Transactions on Database Systems, 1976
- Semantics of context-free languages: CorrectionTheory of Computing Systems, 1971
- A relational model of data for large shared data banksCommunications of the ACM, 1970
- Semantics of context-free languagesTheory of Computing Systems, 1968