Date: Sat, 25 Sep 2021 01:35:27 +0200
On Fri, Sep 24, 2021 at 9:59 PM Jens Maurer via Liaison
<liaison_at_[hidden]> wrote:
>
> Maybe the philosophical difference here is whether contracts
> are part of (usual) program semantics (you can use them to
> cause a termination, given the right settings, instead of
> writing std::abort() yourself), or whether they're part of
> the meta-framework around your program.
Indeed -- to me, it sounds like contracts (when broken) are meant to
have "defined but nevertheless erroneous behavior", which is a concept
that e.g. Rust uses.
But regardless of whether a broken contract ends up implying a program
is "incorrect" or not, we would soon start seeing systems relying on
contracts aborting nevertheless... :)
Cheers,
Miguel
<liaison_at_[hidden]> wrote:
>
> Maybe the philosophical difference here is whether contracts
> are part of (usual) program semantics (you can use them to
> cause a termination, given the right settings, instead of
> writing std::abort() yourself), or whether they're part of
> the meta-framework around your program.
Indeed -- to me, it sounds like contracts (when broken) are meant to
have "defined but nevertheless erroneous behavior", which is a concept
that e.g. Rust uses.
But regardless of whether a broken contract ends up implying a program
is "incorrect" or not, we would soon start seeing systems relying on
contracts aborting nevertheless... :)
Cheers,
Miguel
Received on 2021-09-24 18:35:39