Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation 2006
DOI: 10.1145/1133981.1134029
|View full text |Cite
|
Sign up to set email alerts
|

Termination proofs for systems code

Abstract: 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… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
133
0
1

Year Published

2006
2006
2019
2019

Publication Types

Select...
7

Relationship

1
6

Authors

Journals

citations
Cited by 222 publications
(134 citation statements)
references
References 28 publications
0
133
0
1
Order By: Relevance
“…However, one challenge to this approach is to support the efficient abstraction/refinement, since most loops need to be fully unrolled in liveness property checking. There are two options for future work: (1) implement an aggressive abstraction/refinement algorithm for loop computation in tools such as SLAM [7] (may be insufficient when a ranking function is required); or (2) utilize termination checking tools such as Terminator [9] which analyzes loops by checking termination arguments (i.e., ranking functions).…”
Section: Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…However, one challenge to this approach is to support the efficient abstraction/refinement, since most loops need to be fully unrolled in liveness property checking. There are two options for future work: (1) implement an aggressive abstraction/refinement algorithm for loop computation in tools such as SLAM [7] (may be insufficient when a ranking function is required); or (2) utilize termination checking tools such as Terminator [9] which analyzes loops by checking termination arguments (i.e., ranking functions).…”
Section: Discussionmentioning
confidence: 99%
“…Cook, et al [9] presented an approach to termination checking of system code through proofs. The approach has two phases: first constructing the termination argument which is a set of ranking functions and then proving that one of the ranking functions decreases between the pre-and post-states of all finite transition sequences in the program.…”
Section: Related Workmentioning
confidence: 99%
“…Nevertheless, we ignore these symbols when building DPs, since these DPs would never be the reason for non-termination. 8 Definition 2 (DP). For all f ∈ D \ F int , we introduce a fresh tuple symbol f ♯ with the same arity, where we often write F instead of f ♯ .…”
Section: Integer Dependency Pair Frameworkmentioning
confidence: 99%
“…Handling non-deterministic algorithms is often necessary for termination proofs of imperative programs when abstracting away "irrelevant" parts of the computation, cf. [4,8,24].…”
Section: A Eliminating Conditionsmentioning
confidence: 99%
See 1 more Smart Citation