Attribute Grammars and their Applications pp 207-221 | Cite as
Coordinated incremental attribute evaluation on a DR-threaded tree
Abstract
Algorithms are presented for coordinated Reps-style incremental evaluation on a limited form of graph substrate, a DR-threaded tree. The substrate is essentially a tree with threads connecting known ‘divergence’ nodes to known ’receptor’ nodes. An arbitrary number of threads are connected to a divergence node, but only one is connected to each receptor node, which must be a leaf. Attribute propagation across the threads is restricted to copying in one direction (divergence to receptor). Substrates of this type arise in a syntax-directed editor that supports naming semantics, where declarations=divergence nodes and references=receptors.
Coordination is provided by constructing an interdependency covering graph, an attribute dependency graph consisting of fragments of actual dependency graphs connected by edges that represent approximate nonlocal dependencies. The ICG represents all possible dependency paths that can diverge from the modified attributes associated with a set of modification sites. ICG coordinated evaluation provides correct scheduling of attribute evaluations with a minimal amount of actual dependency analysis.
Keywords
Dependency Graph Dependency Path Tree Node Divergence Node Receptor NodePreview
Unable to display preview. Download preview PDF.
References
- [ACR+87]B. Alpern, A. Carle, B. Rosen, P. Sweeney, and K. Zadeck. Incremental evaluation of attributed graphs. Technical Report CS-87-29, Brown University, Providence, RI, December 1987.Google Scholar
- [Cap85]M. A. Caplinger. A Single Intermediate Language for Programming Environments. PhD thesis, Rice University, Houston, TX, 1985. Rice COMP TR85-28.Google Scholar
- [HDM87]G. Hedin, L. Dahlin, and B. Magnusson. Incremental semantic analysis in Mjølner. Draft submitted to SIGPLAN '88, November 1987.Google Scholar
- [Hoo87]Roger Hoover. Incremental Graph Evaluation. PhD thesis, Cornell University, Ithaca, NY, May 1987. Tech. Report # 87-836.Google Scholar
- [Hud89]Scott E. Hudson. Incremental attribute evaluation: A flexible algorithm for lazy update. Technical Report TR 89-12, University of Arizona, Tucson, AZ, 1989.Google Scholar
- [Joh84]Gregory F. Johnson. An Approach to Incremental Semantics. PhD thesis, University of Wisconsin, Madison, WI, July 1984. Technical Report #547.Google Scholar
- [Pec88]Stephen B. Peckham. Incremental attribute evaluation with asynchronous subtree replacements. draft submitted to POPL '89, July 1988.Google Scholar
- [Rep84]Thomas Reps. Generating Language-based Environments. MIT Press, Cambridge, MA, 1984.Google Scholar
- [RMT86]T. Reps, C. Marceau, and T. Teitelbaum. Remote attribute updating for language-based editors. In Proceedings of the 13th ACM Symposium on Principles of Programming Languages, pages 1–13, St. Petersburg, FL, January 1986. ACM.Google Scholar
- [RTD83]T. Reps, T. Teitelbaum, and A. Demers. Incremental context-dependent analysis for language-based editors. Transactions on Programming Languages and Systems, 5(3):449–477, July 1983.CrossRefGoogle Scholar
- [Vor90]Scott A. Vorthmann. Syntax-Directed Editor Support for Incremental Consistency Maintenance. PhD thesis, Georgia Institute of Technology, Atlanta, GA, June 1990. Tech. Report GIT-ICS-90/03.Google Scholar
- [Yeh83]Dashing Yeh. On incremental evaluation of ordered attribute grammars. BIT, 23(3):308–320, 1983.Google Scholar
- [YK88]Dashing Yeh and Uwe Kastens. Improvements of an incremental evaluation algorithm for ordered attribute grammars. SIGPLAN Notices, 23(12):45–50, December 1988.Google Scholar