The K framework, based on rewriting logic semantics, provides a powerful logic for defining the semantics of programming languages. While most work in this area has focused on defining an evaluation semantics for a language, it is also possible to define an abstract semantics that can be used for program analysis. Using the SILF language (Hills, Serbanuta and Rosu, 2007), this paper describes one technique for defining such a semantics: policy frameworks. In policy frameworks, an analysis-generic, modular framework is first defined for a language. Individual analyses, called policies, are then defined as extensions of this framework, with each policy defining analysis-specific semantic rules and an annotation language which, in combination with support in the language front-end, allows users to annotate program types and functions with information used during program analysis. Standard term rewriting techniques are used to analyze programs by evaluating them in the policy semantics.
, ,
,
Schloss Dagstuhl - Leibniz Center of Informatics
C. Lynch
Leibniz International Proceedings in Informatics (LIPIcs)
International Conference on Rewriting Techniques and Applications
Software Analysis and Transformation

Hills, M., & Rosu, G. (2010). A Rewriting Logic Semantics Approach to Modular Program Analysis. In C. Lynch (Ed.), Proceedings of the 21st International Conference on Rewriting Techniques and Applications (pp. 151–160). Schloss Dagstuhl - Leibniz Center of Informatics.