Construction of Program Analysis Techniques for use in Program Development Environments
GA Venkatesh and Charles N Fischer
1989
Program analysis techniques have been used in the past to aid in translation of programs. Recently, techniques have been developed to aid in the construction of programs. Use of such techniques in interactive program synthesizers result in effective program development environments. The growing sophistication of these analysis techniques necessitates a structured approach to their design to ease their developments as well as to ensure their correctness. This report provides an overview of a framework that has been designed to facilitate the construction of program analysis techniques for use in programming environments generated by a tool such as the Synthesizer Generator [17]. The framework supports high-level specifications of analysis techniques in a denotational fashion where the implementation details can be ignored. Many of the features commonly required in program analysis techniques are provided as primitives in the framework resulting in clear and concise specifications that aid in the understanding of the corresponding analysis techniques. The framework is exemplified by specifications for dependence analysis and scalar range analysis for imperative programs.