Re: 1GB Tables as Classes, or Tables as Types, and all that refuted

From: Costin Cozianu <c_cozianu_at_hotmail.com>
Date: Tue, 14 Dec 2004 11:18:41 -0800
Message-ID: <328slaF3ip88sU1_at_individual.net>


Alfredo Novoa wrote:
> On Sun, 12 Dec 2004 16:46:57 -0800, Costin Cozianu
> <c_cozianu_at_hotmail.com> wrote:
>
>
>

>>>Object:
>>>
>>>Objects encapsulate both state and behavior. In particular they
>>>consist of a collection of instance variables, representing the state
>>>of the object, and a collection of methods, representing the behavior
>>>that the object is capable of performing. The methods are routines
>>>that are capable of accessing and manipulating the values of the
>>>instance variables of the object...
>>>As is the case in Java and Smalltalk, we wil assume that all objects
>>>are implicit references...
>>>
>>>Class:
>>>
>>>Classes are extensible templates for creating objects, providing
>>>initial values for instance variables and the bodies for methods. All
>>>objects generated from the same class share the same methods, but
>>>contain separate copies of the instance variables. New objects can be
>>>created from a class by applying the new operator to the name of the
>>>class.
>>>
>>>I have not found any definition for instance variable, and the
>>>sloppiness and contradictions are evident.

>
>
>>This is a bunch of BS, Alfredo.

>
>
> I agree on that the definitions are not good :)
>
>
>>A defintion for instance variable if Kim 
>>Bruce has not put it in, is trivial.

>
>
> But it is essential to know what an object is for him. It is a
> fundamental omission.
>
>
>>It's a name "x" such that given a 
>>reference to an object instance r, r.x can be used to denote the value 

>
>
> What is an object instance and what is the difference between an
> object instance and an object?
>
> In the OO world, instance is often another synonym of value, state and
> object.
>
>
>>of the component x and can also be used on the left side of the 
>>assignment to modify the value of the component x.

>
>
> So an instance variable is a variable that is a component of a
> variable, so an object is a composed variable. But variables don't
> have methods, methods are members of types.
>
> A few lines below he says that objects are references, he is confusing
> the pointer typed variables (his references) with the referenced
> variables (the variables formed by the collection of instance
> variables).
>
> The definitions are very tied to the physical level because a logical
> variable does not have components, it is simply a holder for a value
> of some type. A value may have different representations and the
> representations may have components.
>
> The class definition is terribly sloppy. He is confusing a model level
> concept with the source code, the language syntax and the
> implementation.
>
> If he is one of the most serious OO authors what can we expect from
> the others?
>
> I was looking in Pierce's papers and books but I don't find any
> definition of the typical OO concepts.
>
>
> Regards
>
>

You beyond redemption Alfredo you quip over non-sensical issues. And you think a bunch of handwaving by D&D can cover for your fundamental lack of knowledge in programming languages and type theory. If all you study is Date's book, that's all you'll learn and is not much.

Of course a value has components. And by the way, in the programming language theory there's no "logical level" and "physical level". There's simply the syntactic level and semantic level.

Of course a composite value has "components" at both levels. At the syntactic level for every *expression* that is typed as a composite type that provide what is called by Robert Constable destructors, a new expression is available to "destruct" (aka decompose, aka select one or more componets.

This in OO languages is denoted by

<expression>.<selector>

In functional style language 9which also admit composite value the decomposition expression is more flexible, something like:

match <point-type-expression> with
  (x, y) -> x+y

Which returns the sum of the coordinates of a point. The designers of FPL thought it nice to provide a shirthand for several deconstruction of the complex value in one fell swoop.

Now about the semantics, semantics can be done in three diffferent style: operational, denotational and axiomatic. I presented you with the axiomatic (Hoare style) semantics for the construct called "instance variable" that you claimed is undefined. That's a bunch of BS. Coming up with the semantics for instance variable is a trivial exercise in any style of semantics for undergraduate students.Please note that Benjamin Pierce, Cardelli and Abadi, and Kim Bruce wrote those respective books at the graduate level, which may have as a consequence that they assumed from the reader a working knowledge of basic programming languages theory.

Any good programming language theory book, will give you all the details you need to learn all you need to know about OO languages, including what's an object (which is synonim with class instance, also referred as object instance), what's a class, and what's a type. You can pick and choose from Friedman "Essentials of programming languages" that one has very clear chapters about objects and classes,or the somewhat more abstract John Reynolds "Theories of programming languages", and you'll get a working knowledge of the essential vocabulary and basic results in programming language theory and type theory.

Just handwaving your ignoramus status and making rdiculous claims about the work of researchers with a high stature in a peer reviewed environement and with *actual results* in terms of compilers, published theorems, etc, well, that's hardly justifiable.

You take liberty to accuse others of their ignorance with regards to relational theory, but you have to eat your own food. Go read something and come back in a few months to share with us if you still have problems with objects, classes and the "values versus variables" story.

Can you tell me where did Date define what a variable was ?

Costin Received on Tue Dec 14 2004 - 20:18:41 CET

Original text of this message