Trace contracts

C Moy, M Felleisen - Journal of Functional Programming, 2023 - cambridge.org
Behavioral software contracts allow programmers to strengthen the obligations and
promises that they express with conventional types. They lack expressive power, though …

Practical typed lazy contracts

O Chitil - Proceedings of the 17th ACM SIGPLAN international …, 2012 - dl.acm.org
Until now there has been no support for specifying and enforcing contracts within a lazy
functional program. That is a shame, because contracts consist of pre-and post-conditions …

Does blame shifting work?

L Lazarek, A King, S Sundar, RB Findler… - Proceedings of the ACM …, 2019 - dl.acm.org
Contract systems, especially of the higher-order flavor, go hand in hand with blame. The
pragmatic purpose of blame is to narrow down the code that a programmer needs to …

The interaction of contracts and laziness

M Degen, P Thiemann, S Wehr - … of the ACM SIGPLAN 2012 workshop …, 2012 - dl.acm.org
Contract monitoring for strict higher-order functional languages has an intuitive meaning, an
established theoretical basis, and a standard implementation. For lazy functional languages …

Expressing contract monitors as patterns of communication

C Swords, A Sabry, S Tobin-Hochstadt - ACM SIGPLAN Notices, 2015 - dl.acm.org
We present a new approach to contract semantics which expresses myriad monitoring
strategies using a small core of foundational communication primitives. This approach …

An Investigation of the Pragmatics of Debugging With Contracts and Gradual Types

L Lazarek - 2024 - search.proquest.com
This dissertation demonstrates that a new empirical method, called the Rational
Programmer, can examine the pragmatics of contracts and gradual typing in the context of …

[图书][B] Executable refinement types

KL Knowles - 2014 - search.proquest.com
This dissertation introduces executable refinement types, a type system with the expressivity
of program contracts, and establishes their metatheory and accompanying implementation …

A Unified Characterization of Runtime Verification Systems as Patterns of Communication

C Swords - 2019 - search.proquest.com
Runtime verification, as a field, provides tools to describe how programs should behave
during execution, allowing programmers to inspect and enforce properties about their code …

Lazy and enforceable assertions for functional logic programs

M Hanus - International Workshop on Functional and Constraint …, 2010 - Springer
Assertions or contracts are an important technique to improve the quality of software. Thus,
assertions are also desirable for functional logic programming. Unfortunately, there is no …

[PDF][PDF] Combining manifest contracts with state

M Greenberg - 2015 - greenberg.science
Manifest contracts combine the rich specifications and runtime checking of higher-order
contracts [11] with a static type discipline. Conventional type systems prevent simple errors …