From: Marshall <marshall.spight_at_gmail.com>
Date: 18 Jun 2006 11:13:14 -0700
Message-ID: <1150654394.697251.287530_at_h76g2000cwa.googlegroups.com>

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.

Marshall Received on Sun Jun 18 2006 - 20:13:14 CEST

Original text of this message