Informatik-Ober-MOVES-Seminar, 23 Sep 2009, 14:00, AH1

Stefan Rieger

 

 

Abstract:

 

We present an abstraction and verification framework for pointer programs operating on unbounded heaps. To this end, we introduce an abstraction method for pointermanipulating programs employing context-free hyperedge replacement graph grammars to model the data structures and compute the abstraction mappings.

By means of partial concretization steps we avoid the necessity for explicitly defining the effect of pointer-manipulating operations on abstracted parts of the heap: it is obtained “for free” by combining partial concretization, the concrete pointer operation, and re-abstraction of the transformed state.

Besides the possibility to check for pointer safety, assuring the absence of null dereferences, and shape safety, the preservation of the data structure, we establish an expressive pointer logic that is based on LTL. It allows to specify safety as well as liveness properties for the executions of the system. We show that the corresponding model checking problem can be reduced to an LTL model checking problem enabling the application of existing, highly optimized model checkers.