Rewriting approximations for fast prototyping of static analyzers

  • Authors:
  • Yohan Boichut;Thomas Genet;Thomas Jensen;Luka Le Roux

  • Affiliations:
  • Université de Rennes 1 and INRIA and CNRS IRISA, Rennes, France;Université de Rennes 1 and INRIA and CNRS IRISA, Rennes, France;Université de Rennes 1 and INRIA and CNRS IRISA, Rennes, France;Université de Rennes 1 and INRIA and CNRS IRISA, Rennes, France

  • Venue:
  • RTA'07 Proceedings of the 18th international conference on Term rewriting and applications
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper shows how to construct static analyzers using tree automata and rewriting techniques. Starting from a term rewriting system representing the operational semantics of the target programming language and given a program to analyze, we automatically construct an over-approximation of the set of reachable terms, i.e. of the program states that can be reached. The approach enables fast prototyping of static analyzers because modifying the analysis simply amounts to changing the set of rewrite rules defining the approximation. A salient feature of this approach is that the approximation is correct by construction and hence does not require an explicit correctness proof. To illustrate the framework proposed here on a realistic programming language we instantiate it with the Java Virtual Machine semantics and perform class analysis on Java bytecode programs.