Abstract
In this tutorial I will introduce CodeContracts, the .NET solution for contract specifications. CodeContracts consist of a language and compiler-agnostic API to express contracts, and of a set of tools to automatically generate the documentation and to perform dynamic and static verification. The CodeContracts API is part of .NET since v4, the tools are available for download on the Visual Studio Gallery. To date, they have been downloaded more than 100,000 times.
- J. Barnes. High Integrity Software: The SPARK Approach to Safety and Security. Addison-Wesley, 2003. Google Scholar
Digital Library
- M. Barnett, M. Fähndrich, K. R. M. Leino, P. Müller, W. Schulte, and H. Venter. Specification and verification: the Spec# experience. Commun. ACM, 54(6):81--91, 2011. Google Scholar
Digital Library
- M. Barnett, M. Fähndrich, and F. Logozzo. Embedded contract languages. In SAC'10. ACM Press, 2010. Google Scholar
Digital Library
- M. Bouaziz, L. Logozzo, and M. Fähndrich. Inference of necessary field conditions with abstract interpretation. In APLAS, 2012.Google Scholar
Cross Ref
- P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In POPL'77. ACM Press, Jan. 1977. Google Scholar
Digital Library
- P. Cousot, R. Cousot, M. Fähndrich, and F. Logozzo. Automatic inference of necessary preconditions. In VMCAI, pages 128--148, 2013.Google Scholar
Digital Library
- P. Cousot, R. Cousot, and F. Logozzo. A parametric segmentation functor for fully automatic and scalable array content analysis. In POPL 2011. ACM Press, Jan. 2011. Google Scholar
Digital Library
- M. Fahndrich, M. Barnett, D. Leijen, and F. Logozzo. Integrating a set of contract checking tools into visual studio. In TOPI. IEEE, 2012.Google Scholar
Cross Ref
- M. Fähndrich and F. Logozzo. Static contract checking with abstract interpretation. In FoVeOOS, 2010.Google Scholar
- P. Ferrara, F. Logozzo, and M. Fähndrich. Safer unsafe code in .NET. In OOPSLA'08. ACM Press, 2008. Google Scholar
Digital Library
- V. Laviron and F. Logozzo. Subpolyhedra: A (more) scalable approach to infer linear inequalities. In VMCAI '09, 2009. Google Scholar
Digital Library
- G. T. Leavens, J. R. Kiniry, and E. Poll. A jml tutorial: Modular specification and verification of functional behavior for java. In CAV, 2007. Google Scholar
Digital Library
- F. Logozzo and T. Ball. Modular and verified automatic program repair. In OOPSLA. ACM, 2012. Google Scholar
Digital Library
- F. Logozzo and M. Fähndrich. Pentagons: a weakly relational abstract domain for the efficient validation of array accesses. In SAC. ACM, 2008. Google Scholar
Digital Library
- B. Meyer. Eiffel: The Language. Prentice Hall, 1991. Google Scholar
Digital Library
- Microsoft. Codecontracts tools.texttthttp://aka.ms/codecontracts/vsgallery.Google Scholar
Index Terms
Practical specification and verification with code contracts
Recommendations
Practical specification and verification with code contracts
HILT '13: Proceedings of the 2013 ACM SIGAda annual conference on High integrity language technologyIn this tutorial I will introduce CodeContracts, the .NET solution for contract specifications. CodeContracts consist of a language and compiler-agnostic API to express contracts, and of a set of tools to automatically generate the documentation and to ...
Technology for inferring contracts from code
HILT '13: Proceedings of the 2013 ACM SIGAda annual conference on High integrity language technologyContracts are a simple yet very powerful form of specification. They consists of method preconditions and post-conditions, of object invariants, and of assertions and loop invariants. Ideally, the programmer will annotate all of her code with contracts ...
Technology for inferring contracts from code
HILT '13Contracts are a simple yet very powerful form of specification. They consists of method preconditions and post-conditions, of object invariants, and of assertions and loop invariants. Ideally, the programmer will annotate all of her code with contracts ...







Comments