Putting static analysis to work for verification: A case study

75Citations
Citations of this article
24Readers
Mendeley users who have this article in their library.

Abstract

We study how program analysis can be used to: Automatically prove partial correctness of correct programs. Discover, locate, and diagnose bugs in incorrect programs. Specifically, we present an algorithm that analyzes sorting programs that manipulate linked lists. A prototype of the algorithm has been implemented. We show that the algorithm is sufficiently precise to discover that (correct versions) of bubble-sort and insertion-sort procedures do, in fact, produce correctly sorted lists as outputs, and that the invariant "is-sorted" is maintained by list-manipulation operations such as element-insertion, element-deletion, and even destructive list reversal and merging of two sorted lists. When we run the algorithm on erroneous versions of bubble-sort and insertion-sort procedures, it is able to discover and sometimes even locate and diagnose the error.

Cite

CITATION STYLE

APA

Lev-Ami, T., Reps, T., Sagiv, M., & Wilhelm, R. (2000). Putting static analysis to work for verification: A case study. In Proceedings of the ACM SIGSOFT 2000 International Symposium on Software Testing and Analysis (pp. 26–38).

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free