Bound Analysis of Imperative Programs with the Size-change Abstraction (extended version)
نویسندگان
چکیده
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 imple-ion 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...
متن کاملInstrumentation Analysis: An Automated Method for Producing Numeric Abstractions of Heap-Manipulating Programs
A number of questions regarding programs involving heap-based data structures can be phrased as questions about numeric properties of those structures. A data structure traversal might terminate if the length of some path is eventually zero or a function to remove n elements from a collection may only be safe if the collection has size at least n. In this thesis, we develop proof methods for re...
متن کاملLOOPUS - A Tool for Computing Loop Bounds for C Programs
We describe the current state of our tool Loopus which computes loop bounds for C programs. In this one-page abstract we describe the current state of our tool Loopus which automatically computes loop bounds for C programs. Loopus can also be seen as contribution towards solving the termination problem for C programs as it provides a conceptually simpler alternative to recently proposed methods...
متن کاملAutomating Regression Verification of Pointer Programs by Predicate Abstraction
Regression verification is an approach complementing regression testing with formal verification. The goal is to formally prove that two versions of a program behave either equally or differently in a precisely specified way. In this paper, we present a novel automatic approach for regression verification that reduces the equivalence of two related imperative pointer programs to constrained Hor...
متن کاملFrom Termination to Complexity Analysis with Monotonicity Constraints
Intuitively, if we can prove that a program terminates, we expect some conclusion regarding its complexity. But the passage from termination proofs to complexity bounds is not always clear. In this work we consider Monotonicity Constraint Systems, a program abstraction where termination is decidable (based on the size-change termination principle). We show that these programs also have a decida...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- CoRR
دوره abs/1203.5303 شماره
صفحات -
تاریخ انتشار 2012