Abstract
Runtime annotation checking is a useful technique to get quick feedback on whether an application respects its annotations. However, a major drawback of this approach is that in general it cannot give a 100% correctness guarantee. For almost all realistic programs, it is impossible to get complete coverage by exploring all possible program execution paths during the analysis. And even if the program’s state space is finite, and exploring all paths might be possible in principle, the performance overhead would be enormous.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
This rule comes in many variations, for functions with and without return values, parameters, etc., but the basic idea is always the same.
- 2.
In fact, a completely formal proof requires the use of weakening and strengthening rules. That falls out of the scope of this book.
- 3.
In Acsl, the keyword is assigns. In Jml, there are multiple keywords for this, these clauses can be called assignable, modifiable or modifies clauses.
- 4.
Similar rules exist for rules with return value, parameters, etc.
- 5.
In fact, to reason about C/Java programs, variations of this rule exist, allowing to reason about loops that terminate abruptly e.g., because of an exception or a return statement [104].
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
Cite this chapter
Huisman, M., Wijs, A. (2023). Static Annotation Checking. In: Concise Guide to Software Verification. Texts in Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-031-30167-4_10
Download citation
DOI: https://doi.org/10.1007/978-3-031-30167-4_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-30166-7
Online ISBN: 978-3-031-30167-4
eBook Packages: Computer ScienceComputer Science (R0)