Bound Analysis of Imperative Programs with the Size-change Abstraction

18th International Static Analysis Symposium, SAS 2011, Venice, Italy, September 14-16, 2011 |

Publication | Publication

The size-change abstraction (SCA) is an important program abstraction for termination analysis, which has been successfully implemented in many tools for functional and logic programs. In this paper, we demonstrate that SCA is also a highly effective abstract domain for the bound analysis of imperative programs.

We have implemented a bound analysis tool based on SCA for imperative programs. We abstract programs in a pathwise and context dependent manner, which enables our tool to analyze real-world programs effectively. Our work shows that SCA captures many of the essential ideas of previous termination and bound analysis and goes beyond in a conceptually simpler framework.

Bound Analysis of Imperative Programs with the Size-change Abstraction

The size-change abstraction (SCA) is an important program abstraction for termination analysis, which has been successfully implemented in many tools for functional and logic programs. In this talk, I will demonstrate that SCA is also a highly effective abstract domain for the bound analysis of imperative programs. I will introduce the first algorithm for bound computation with SCA and discuss how our methodology solves the technical challenges involved in bound computation. Further I will present two program transformations - pathwise analysis and contextualization - that make our SCA-based analysis precise enough to scale to real world programs. I will demonstrate the effectiveness of our approach by experiments with our tool Loopus on the cBench benchmark.