Re: theory and practice: ying and yang

From: Alexandr Savinov <savinov_at_host.com>
Date: Wed, 01 Jun 2005 13:23:54 +0200
Message-ID: <429d9ad8$1_at_news.fhg.de>


Tony Andrews schrieb:
> Alexandr Savinov wrote:
>

>>Tony Andrews schrieb:
>>
>>>Alexandr Savinov wrote:
>>>
>>>
>>>>One major problem of declarative approach is that sets do not exist in
>>>>reality.
>>>
>>>
>>>What do you mean by that?  Of course they do!  It is even an everyday
>>>term: chess set, tea set, geometry set.  And we think in sets all the
>>>time: "my friends", "the population of the UK", "pack of cards", ...
>>>
>>>How can you possibly say that sets "do not exist in reality"?
>>
>>I mean that we cannot *represent* sets in such a way that they remain
>>sets. We can think of a number of things as a set but we are not able to
>>store or pass them. We always need some underlying *representation*
>>mechanism like arrays.

>
>
> So by "in reality" you really mean "in today's programming langauages"
> do you?

Implementations of programming languages. There exist declarative approaches where we make some statements but eventually we always get arrays (so the programming language simply hides this fact).

> Surely the relational model is all about "representing sets"? I don't
> need to use mechanisms like arrays to work with a relational database.

Yes, in the model itself we do not need to know that sets are arrays. In practice and in more general approaches we unfortunately need to deal with order of elements.

>>Sets do not exist in reality because elements cannot exist in vacuum
>>like in set theory. Elements of a set *must* have some coordinates
>>(offsets, positions etc.) in order to be qualified as (separate)
>>elements. Thus when we say we have a set we normally mean we have some
>>representation of them (but we do not care how concretely it is
>>organized, particularly, we do not care its order).

>
>
> Again, it's not clear to me what you mean by "reality". When, in
> reality, I say I have a set of something (matching drinking glasses,
> photographs of Beyonce, boxed set of Andy Williams CDs, whatever), I
> mean I *really* have such a set, located in time and space. I don't
> mean that I have a "representation" of them at all!

Ok, I understand you. It is in great extent a philosophical issue, i.e., how we view the world and what we mean by reality. One point of view is that abstractions or illusions are also things like all other "more real" things. A well known example is where we can specify a characteristic property of elements rather than enumerating them explicitly. A somewhat opposite point of view is where we need to build a thing or provide a *constructive* procedure for building it in order to consider it a legal element.

When I said that sets are not real I followed an approach where *representation* (and access) is of crucial importance. It can be viewed a variation of constructivism. In this approach all legal things need to be somehow represented. The second point then is that there is no mechanism for representing elements of a set (without order). If there is a set then there has to be some explicit or implicit order of its elements at some level of representation. This can be viewed as a fundamental property of reality where all existing things have some coordinates in space.

Currently both approaches (declarative and procedural) are used but the thing is that declarative statements need to be translated into procedures (because declarative statements cannot be executed by themselves). This means that if we want to have a set we get an array and if we specify a criterion for selecting records then it is translated into a loop of some other procedure.

The main problem is what approach is more natural and productive but I think it cannot be solved in a discussion.

-- 
alex
http://conceptoriented.com
Received on Wed Jun 01 2005 - 13:23:54 CEST

Original text of this message