Global Data Flow Analysis and Iterative Algorithms
Journal of the ACM (JACM)
A Fast and Usually Linear Algorithm for Global Flow Analysis
Journal of the ACM (JACM)
A technique for software module specification with examples
Communications of the ACM
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Communications of the ACM
A unified approach to global program optimization
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Software Tools
The Design of an Optimizing Compiler
The Design of an Optimizing Compiler
A new approach to code motion and its application to hoisting
Computer Languages
Hi-index | 0.00 |
We describe our work in formally specifying an extension to an existing, large software system. In particular, we were interested in adding a global optimization phase to an operational cross-compiler. We describe the module decomposition of the optimizer and how the modules were formally specified. The resulting modules constitute a set of tools and a framework which promote the rapid and efficient implementation of porgram optimizers. The information hiding strategy of Parnas was followed in the module decomposition. A specification technique proposed by Parnas was intended to be used for specifying the modules. During the course of specification, however, we found Knuth's attribute grammars a much more convenient specification technique for some aspects of the design, espcially the syntax dependent parts. In the final design, these two different techniques were combined to produce a complete specification which is superior to any we found using either technique alone. The use of attribute grammars also shows an interesting application of language theory to program specification and design.