Date: Sun, 18 Jun 2006 19:24:16 GMT
> There's a lot of terminological discussion floating around right now,
> and some of it is really bad.
> Most basically, a relation is a subset of a product of sets.
> In the c.d.t. context, we mean a little more than that, because
> of keys and possibly constraints, and because each of the sets
> has an associated name, but that's the basic idea. A particular
> relation is a value.
> A variable is a construct that has an associated value, and also
> has some associated destructive update operation, usually
> assignment. In statically typed languages, a variable has an
> associated type, and updates to the variable must conform
> to that type, possibly taking subtyping in to account.
> "Relvar" is simply an abbrevation for "relation variable." No
> more and no less--just shorthand. It is a variable, and the
> static type of the variable is a relation type.
> Note that there is no distinction between "relation" and "relation
> value" the same way there is no distinction between "integer"
> and "integer value." There are values and there are variables.
> Values have a type, and in most systems variables have
> a type, such that the variable and its associated value are
> guaranteed to have compatible types, either because the
> types are equal or because the value's type is a subtype of
> the variable's type.
That is tidy, but one complaint - I believe that in r.t. variable means foremost a logical place-holder as in the fopl whereas I believe D&D coined the term relvar as a means to talk about imperative computer languages that implement an r.t. Not clear to me that these uses of variable and relvar are always comparable, e.g., what kind of destructive operation there can be for a fopl logical variable.
p Received on Sun Jun 18 2006 - 21:24:16 CEST