Engineering A Program Optimizer

  • Authors:
  • John H. Crawford;Mehdi Jazayeri

  • Affiliations:
  • -;-

  • Venue:
  • ACM '78 Proceedings of the 1978 annual conference
  • Year:
  • 1978

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.