Reachability Analysis of Innermost Rewriting
Résumé
We consider the problem of inferring a grammar describing the output of a functional program
given a grammar describing its input. Solutions to this problem are helpful for detecting bugs or
proving safety properties of functional programs and, several rewriting tools exist for solving this
problem. However, known grammar inference techniques are not able to take evaluation strategies
of the program into account. This yields very imprecise results when the evaluation strategy
matters. In this work, we adapt the Tree Automata Completion algorithm to approximate
accurately the set of terms reachable by rewriting under the innermost strategy. We prove that
the proposed technique is sound and precise w.r.t. innermost rewriting. The proposed algorithm
has been implemented in the Timbuk reachability tool. Experiments show that it noticeably
improves the accuracy of static analysis for functional programs using the call-by-value evaluation strategy
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...