Title
Behavioral Interface Specification Languages
Keywords
Abstraction; Assertion; Behavioral subtyping; Frame conditions; Interface specification language; Invariant; JML; Postcondition; Precondition; Separation logic; SPARK; Spec#
Abstract
Behavioral interface specification languages provide formal code-level annotations, such as preconditions, postconditions, invariants, and assertions that allow programmers to express the intended behavior of program modules. Such specifications are useful for precisely documenting program behavior, for guiding implementation, and for facilitating agreement between teams of programmers in modular development of software. When used in conjunction with automated analysis and program verification tools, such specifications can support detection of common code vulnerabilities, capture of light-weight application-specific semantic properties, generation of test cases and test oracles, and full formal program verification. This article surveys behavioral interface specification languages with a focus toward automatic program verification and with a view towards aiding the Verified Software Initiative-a fifteen-year, cooperative, international project directed at the scientific challenges of large-scale software verification. © 2012 ACM.
Publication Date
6-1-2012
Publication Title
ACM Computing Surveys
Volume
44
Issue
3
Number of Pages
-
Document Type
Article
Personal Identifier
scopus
DOI Link
https://doi.org/10.1145/2187671.2187678
Copyright Status
Unknown
Socpus ID
84863823506 (Scopus)
Source API URL
https://api.elsevier.com/content/abstract/scopus_id/84863823506
STARS Citation
Hatcliff, John; Leavens, Gary T.; Leino, K. Rustan M.; Müller, Peter; and Parkinson, Matthew, "Behavioral Interface Specification Languages" (2012). Scopus Export 2010-2014. 4207.
https://stars.library.ucf.edu/scopus2010/4207