Loopfrog “” loop summarization for static analysis

  • Daniel Kroening ,
  • Natasha Sharygina ,
  • Stefano Tonetta ,
  • Aliaksei Tsitovich ,
  • Christoph M. Wintersteiger

Workshop on Invariant Generation (WING) |

Published by EasyChair

Publication

Loopfrog is a scalable static analyzer for ANSI-C programs, that combines the precision of model checking and the performance of abstract interpretation. In contrast to traditional static analyzers, it does not calculate the abstract fix-point of a program by iterative application of an abstract transformer. Instead, it calculates symbolic abstract transformers for program fragments (e.g., loops) using a loop summarization algorithm. Loopfrog computes abstract transformers starting from the inner-most loops, which results in linear (in the number of the looping constructs) run-time of the summarization procedure and which is often considerably smaller than the traditional saturation procedure of abstract interpretation. It also provides “leaping” counterexamples to aid in the diagnosis of errors.