Title :
Proving What Programs Do Not
Author_Institution :
ETH Zurich, Zurich
fDate :
May 30 2007-June 2 2007
Abstract :
One of the most difficult tasks in program verification is the "frame problem": guaranteeing that programs produce nothing more than their advertised effects. Even in a closed-world context, where the entire program is known, this is a delicate task especially in the presence of a modern programming language model with references and aliasing. As part of a general effort to verify the correctness of contract-equipped Eiffel software, involving proofs as part of a battery of verification techniques (along with others such as automatic contract-based testing), we are developing complementary approaches to mastering the frame problem, meant to be integrated in a practical proof workbench. One of these approaches relies on explicit specification of frame properties (modify/use); another infers these properties from a static analysis of the software. This is work in progress and the author reports directions of development and current advances rather than fully worked-out solutions or tools. The results include a systematic study of the aliasing phenomenon and point the way towards a general theory of object-oriented programming.
Keywords :
object-oriented programming; program diagnostics; program verification; frame problem; frame property; object-oriented programming; program correctness; program verification; static analysis; Automatic testing; Batteries; Computer languages; Context modeling; Object oriented modeling; Object oriented programming; Software testing;
Conference_Titel :
Formal Methods and Models for Codesign, 2007. MEMOCODE 2007. 5th IEEE/ACM International Conference on
Conference_Location :
Nice
Print_ISBN :
1-4244-1050-9
DOI :
10.1109/MEMCOD.2007.371233