Abstract
Abstract
Behavioral software contracts allow programmers to strengthen the obligations and promises that they express with conventional types. They lack expressive power, though, when it comes to invariants that hold across several function calls. Trace contracts narrow this expressiveness gap. A trace contract is a predicate over the sequence of values that flow through function calls and returns. This paper presents a principled design, an implementation, and an evaluation of trace contracts.
Publisher
Cambridge University Press (CUP)
Reference62 articles.
1. Kiczales, G. , Lamping, J. , Mendhekar, A. , Maeda, C. , Lopes, C. , Loingtier, J.-M. & Irwin, J. (1997) Aspect-oriented programming. In European Conference on Object-Oriented Programming (ECOOP).
2. Computational contracts;Scholliers;Science of Computer Programming.,2015
3. Making components contract aware;Beugnard;Computer.,1999
4. A programmable programming language;Felleisen;Commun. ACM (CACM).,2018
5. Chen, F. , d’Amorim, M. & Roşu, G. (2005) Checking and correcting behaviors of Java programs at runtime with Java-MOP. In Workshop on Runtime Verification (RV).
Cited by
2 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Consolidating Smart Contracts with Behavioral Contracts;Proceedings of the ACM on Programming Languages;2024-06-20
2. Effectful Software Contracts;Proceedings of the ACM on Programming Languages;2024-01-05