The standard algorithm for higher-order contract checking can lead to unbounded space consumption and can destroy tail recursion, altering a program’s asymptotic space complexity. While space efficiency for gradual types—contracts mediating untyped and typed code—is well studied, sound space efficiency for manifest contracts— contracts that check stronger properties than simple types, e.g., “is a natural ” instead of “is an integer”—remains an open problem. We show how to achieve sound space efficiency for manifest contracts with strong predicate contracts. The essential trick is breaking the contract checking down into coercions: structured, blame-annotated lists of checks. By carefully preventing duplicate coercions from appearing, we can...
Since Findler and Felleisen (Findler, R. B. & Felleisen, M. 2002) introduced higher-order contracts,...
Since Findler and Felleisen introduced higher-order contracts, many variants have been proposed. Bro...
Since Findler and Felleisen (Findler, R. B. & Felleisen, M. 2002) introduced higher-order contracts,...
The standard algorithm for higher-order contract checking can lead to unbounded space consumption an...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Gradual types mediate the interaction between dynamic and simple types, offering an easy transition ...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Since Findler and Felleisen introduced higher-order contracts, many variants have been proposed. Bro...
Since Findler and Felleisen (Findler, R. B. & Felleisen, M. 2002) introduced higher-order contra...
Even in statically typed languages it is useful to have certain invariants checked dynamically. Find...
Since Findler and Felleisen introduced higher-order contracts, many variants have been proposed. Bro...
Since Findler and Felleisen (Findler, R. B. & Felleisen, M. 2002) introduced higher-order contracts,...
Since Findler and Felleisen introduced higher-order contracts, many variants have been proposed. Bro...
Since Findler and Felleisen (Findler, R. B. & Felleisen, M. 2002) introduced higher-order contracts,...
The standard algorithm for higher-order contract checking can lead to unbounded space consumption an...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Gradual types mediate the interaction between dynamic and simple types, offering an easy transition ...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Since Findler and Felleisen introduced higher-order contracts, many variants have been proposed. Bro...
Since Findler and Felleisen (Findler, R. B. & Felleisen, M. 2002) introduced higher-order contra...
Even in statically typed languages it is useful to have certain invariants checked dynamically. Find...
Since Findler and Felleisen introduced higher-order contracts, many variants have been proposed. Bro...
Since Findler and Felleisen (Findler, R. B. & Felleisen, M. 2002) introduced higher-order contracts,...
Since Findler and Felleisen introduced higher-order contracts, many variants have been proposed. Bro...
Since Findler and Felleisen (Findler, R. B. & Felleisen, M. 2002) introduced higher-order contracts,...