[r6rs-discuss] [Formal] blame assignment for contract violations

From: Robby Findler <robby>
Date: Tue Oct 31 13:24:57 2006

At Tue, 31 Oct 2006 19:18:49 +0100, Michael Sperber wrote:
>
> Robby Findler <robby_at_cs.uchicago.edu> writes:
>
> > The English definition of the word "contract" is all about agreements
> > between particular parties, etc. The other, perfectly good, English
> > word is "assertion" and there is certainly a track record for its use
> > in programming languages. (I prefer real contracts, but I understand if
> > r6 isn't ready to do that!)
>
> I'm sure Anglo-Saxon law allows you to write contracts where one party
> is unknown, such as when you buy something in a store or enter into a
> license agreement by unwrapping your copy of Windows.

In the two cases above, when the contracts are actually entered into,
there are certainly multiple parties. The dictionary definition of a
contract also matches my sense of the word. Note that the dictionary
definition is more expansive which may also be confusing -- it means
both the agreement itself (where there are two or more parties) and the
document describing the agreement itself.

http://www.answers.com/contract&r=67

> > Of course, one could say "contract" with the intention that there are
> > always the same two parties, namely r6 and the program itself. In that
> > case, the blame always rests with the program, and it is implicit in
> > the use of the `contract-violation' function that the program is to be
> > blamed.
>
> I'm still confused by your use of "r6"---maybe I'm missing something.
> `contract-violation' is for contracts between parts of the program,
> but between the "r6" and the program.

One can kind of think of the implementation of the primitives as one
party and the rest of the program as the other party (instead of
treating each library/module as its own party). This is, imo, a
degenerate use, but one that does match the actual meanings of the
words.

Robby
Received on Tue Oct 31 2006 - 13:23:35 UTC

This archive was generated by hypermail 2.3.0 : Wed Oct 23 2024 - 09:15:01 UTC