Automated analysis of data-dependent programs with dynamic memory

6Citations
Citations of this article
2Readers
Mendeley users who have this article in their library.
Get full text

Abstract

We present a new approach for automatic verification of data-dependent programs manipulating dynamic heaps. A heap is encoded by a graph where the nodes represent the cells, and the edges reflect the pointer structure between the cells of the heap. Each cell contains a set of variables which range over the natural numbers. Our method relies on standard backward reachability analysis, where the main idea is to use a simple set of predicates, called signatures, in order to represent bad sets of heaps. Examples of bad heaps are those which contain either garbage, lists which are not well-formed, or lists which are not sorted. We present the results for the case of programs with a single next-selector, and where variables may be compared for (in)equality. This allows us to verify for instance that a program, like bubble sort or insertion sort, returns a list which is well-formed and sorted, or that the merging of two sorted lists is a new sorted list. We report on the result of running a prototype based on the method on a number of programs. © 2009 Springer-Verlag Berlin Heidelberg.

Cite

CITATION STYLE

APA

Abdulla, P. A., Atto, M., Cederberg, J., & Ji, R. (2009). Automated analysis of data-dependent programs with dynamic memory. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 5799 LNCS, pp. 197–212). https://doi.org/10.1007/978-3-642-04761-9_16

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