On 25 May 2024, at 10:18, Bakul Shah via TUHS
<tuhs(a)tuhs.org> wrote:
What would be nice if programming languages provided some support for such exhaustive
testing[1].
At one point I had suggested turning Go's Interface type to something like Guttag
style abstract data types in that relevant axioms are specified right in the interface
definition. The idea was that any concrete type that implements that interface must
satisfy its axioms. Even if the compiler ignored these axioms, one can write a support
program that can generate a set of comprehensive tests based on these axioms.
Sounds like Eiffel, whose compiler had support for checking pre and post conditions (and
maybe invariants?) at runtime, or disabling the checks for “performance” mode.
d