Skip to main content

Static Annotation Checking

  • Chapter
  • First Online:
Concise Guide to Software Verification

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 89.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 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. 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. 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. 4.

    Similar rules exist for rules with return value, parameters, etc.

  5. 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

Authors

Corresponding author

Correspondence to Marieke Huisman .

Rights and permissions

Reprints and permissions

Copyright information

© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics