Termination proofs for systems code

11 years 11 months ago
Termination proofs for systems code
Program termination is central to the process of ensuring that systems code can always react. We describe a new program termination prover that performs a path-sensitive and context-sensitive program analysis and provides capacity for large program fragments (i.e. more than 20,000 lines of code) together with support for programming language features such as arbitrarily nested loops, pointers, function-pointers, side-effects, etc. We also present experimental results on device driver dispatch routines from the Windows operating system. The most distinguishing aspect of our tool is how it shifts the balance between the two tasks of constructing and respectively checking the termination argument. Checking becomes the hard step. In this paper we show how we solve the corresponding challenge of checking with binary reachability analysis. Categories and Subject Descriptors D.2.4 [Software]: Software Engineering—Program Verification; D.4.5 [Software]: Operating Systems—Reliability Gene...
Byron Cook, Andreas Podelski, Andrey Rybalchenko
Added 14 Jun 2010
Updated 14 Jun 2010
Type Conference
Year 2006
Where PLDI
Authors Byron Cook, Andreas Podelski, Andrey Rybalchenko
Comments (0)