On the Relationship Between Formal Semantics and Static Analysis P. N. BENTON Computer Laboratory, University of Cambridge, Cambridge, U.K. INTRODUCTION Static analysis is the automatic compile-time analysis of programs so as to extract information that can be used to produce optimized code. Much work on static analysis draws on more theoretical research into the semantics of programming languages, as this can provide frameworks both for formulating analyses and for proving their correctness such relationships between pure and applied fields are common throughout the sciences. This article highlights a few existing interactions between the two fields and identifies some current trends and possible directions for future work. The account is (unsurprisingly) biased towards my own interests in functional computation. It seems entirely natural that static analysis should be a major consumer of, as well as a testbed and an inspiration for, ideas in semantics because both fields are, at their broadest, concerned with finding formal principles for reasoning about the behavior of programs. The major distinction is that static analyses are intended to be implemented and must therefore be (efficiently) computable. Because nearly all interesting program properties are noncomputable, static analyses cannot discover precise information and we
/lp/association-for-computing-machinery/on-the-relationship-between-formal-semantics-and-static-analysis-9dQD22qPNR