Graph grammars and global program data flow analysis
- 1 October 1976
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 02725428,p. 42-56
- https://doi.org/10.1109/sfcs.1976.17
Abstract
Program structure is defined in terms of a simple graph grammar, the "semi-structured flow graph grammar," which admits many of the control structure extensions suggested for "structured programming." The grammar defines a set of graph reductions which are shown to have the "Finite Church-Rosser (FCR)" property; i.e., when applied in any order to a graph, the limit (when no further reductions are possible) is unique. In particular, if a given graph is generated by the grammar, repeated application of the reductions will result in a single node regardless of the order in which they are applied. This property gives rise to an algorithm that parses a given program flow graph in time linear in the size of the graph. The resulting parse is used in a global data flow analysis algorithm which requires a number of bit-vector steps which is also linear in the size of the given graph.Keywords
This publication has 30 references indexed in Scilit:
- Structured Programming with go to StatementsACM Computing Surveys, 1974
- Testing for the Church-Rosser PropertyJournal of the ACM, 1974
- The scope of variable conceptACM SIGPLAN Notices, 1974
- Structured programming and automatic program synthesisACM SIGPLAN Notices, 1974
- The 'natural' set of basic control structuresACM SIGPLAN Notices, 1973
- Tree-Manipulating Systems and Church-Rosser TheoremsJournal of the ACM, 1973
- A unified approach to global program optimizationPublished by Association for Computing Machinery (ACM) ,1973
- Analysis of Graphs by Ordering of NodesJournal of the ACM, 1972
- Semantics of context-free languages: CorrectionTheory of Computing Systems, 1971
- Semantics of context-free languagesTheory of Computing Systems, 1968