Re: relations aren't types?

From: John Jacob <jingleheimerschmitt_at_hotmail.com>
Date: 31 Dec 2003 11:23:07 -0800
Message-ID: <72f08f6c.0312311123.321a9da6_at_posting.google.com>


> > Why is this a requirement for a useful definition of scalar?
>
> Scalar is not a useful concept so I fail to understand your question.

So you advocate an untyped language?

> With all due respect, if everything one can represent with a finite number
> of bits is a scalar, everything one can represent with a computer system is
> a scalar, which is rather too encompassing to have any utility.

First, the fact that any scalar can be represented with a finite number of bits (true of every value, scalar or otherwise) does not imply that any finite number of bits is a scalar. Second, and perhaps more importantly, the physical representation of the value in the computer system has no bearing on the logical model. This is physical data independence which you so voraciously defended previously. If we start using the physical representations of values to define the logical boundaries for type categories, we have taken a *huge* step backwards.

> > You can invoke "A join B" without knowing the attributes, but what
> > does the result mean?
>
> You can invoke A * B without knowing the exact types or dimensions, but what
> does the result mean? You can invoke A AND B without knowing the bits, but
> what does the result mean? You can invoke Distance(P1,P2) without knowing
> any coordinate systems, but what does the result mean? You can invoke P2 -
> P1 without knowing any coordinate systems, but what does the result mean?
>
> What relevance does your question have?

The primary reason for types is to imbue our code with meaning that the compiler can understand and verify. The primary reason for scalar types is to allow the user to invoke the very operators you are describing without having to know anything about the possible representations of those values, and still be able to understand the meaning of the invocation. The primary reason for non-scalar types is to allow the description of values which do have some visible structure in the logical model, like relations, lists, tuples, etc.,.

At this point I am forced to ask what is your overall point? Do you disagree with the characterization of some values as scalar, and others as non-scalar? Do you disagree that we need some logical construct to describe relation values? What would a relational language that did not distinguish between scalar and relation values look like? How would it be more useful than one that did? Received on Wed Dec 31 2003 - 20:23:07 CET

Original text of this message