ABSTRACT
Code Contracts [2] is a tool that allows the specification and verification of contracts (pre, post-condition, invariants) in all .NET based programming languages. Resource Contracts is an extension of this language to specify resource usage in .NET programs. The new annotations, initially focussed on dynamic memory, enable modular analysis of both memory consumption and lifetime properties. They are checked by relying on the own Code Contracts static verifier and a points-to analysis. This approach is implemented as a Visual Studio extension1, providing facilities such us autocompletion and verification at build time.
- V. Braberman, F Fernández, D. Garbervetsky, and S Yovine. Parametric prediction of heap memory requirements. In ISMM'08. ACM, jun 2008. Google ScholarDigital Library
- M. Fähndrich, M. Barnett, and F. Logozzo. Embedded contract languages. In SAC 2010, pages 2103--2110. ACM, 2010. Google ScholarDigital Library
- D. Garbervetsky, M. Rouax, and J. Tapicer. SEIF project: ResourceContracts.NET. http://lafhis.dc.uba.ar/resourcecontracts/files/report.pdf.Google Scholar
Index Terms
- Resource usage contracts for .NET
Recommendations
Liquidate your assets: reasoning about resource usage in liquid Haskell
Liquid Haskell is an extension to the type system of Haskell that supports formal reasoning about program correctness by encoding logical properties as refinement types. In this article, we show how Liquid Haskell can also be used to reason about program ...
Verifying data- and control-oriented properties combining static and runtime verification: theory and tools
Static verification techniques are used to analyse and prove properties about programs before they are executed. Many of these techniques work directly on the source code and are used to verify data-oriented properties over all possible executions. The ...
Expressing and Verifying Business Contracts with Abductive Logic Programming
SCIFF is a declarative language, based on abductive logic programming, that accommodates forward rules, predicate definitions, and constraints over finite domain variables. Its abductive declarative semantics can be related to that of deontic operators; ...
Comments