From: beckmann@Informatik.Mathematik.Uni-Mainz.DE (Markus Beckmann)
Subject: Re: A Pre-Release FAQ
Organization: Computer Science, Johannes Gutenberg-Universitaet
Date: Thu, 31 Dec 1992 10:49:41 GMT



In article <PCG.92Dec29203617@decb.aber.ac.uk>, pcg@aber.ac.uk 
   (Piercarlo Grandi) writes:

|> A point of order too: a FAQ should not be about the FAQ author's
|> opinions; the FAQ should only be a list of facts...

|>   Are you so incredibly sure that the type of an object and its class
|>   are the one and same concept, such that 'type' and 'class' are just
|>   synonyms?

A list of facts:

Booch ('OOD with applications', p.59)
   "The concept of a type derives primarily from the theories 
   of abstract data types. ... For our purposes, we will use 
   the terms type and class interchangeably.(/footnote A type 
   and a class are not exactly the same thing; some languages 
   actually distinguish these two concepts. ... 
   Even in Smalltalk, objects of the classes SmallInteger, 
   LargeNegativeInteger, and LargePositiveInteger are all of
   the same type, Integer, although not of the same class. For
   most mortals, however, separating the concepts of type and
   class is utterly confusing and adds very little value. It 
   is sufficient to say that a class implements a type.) 
   Although the concepts of a type and a class are similar, we
   include typing as a separate element of the object model..."

... and an other one for the mortals...

B. Meyer ('OO Software Construction',p.61)
   "Level 4 (Classes): Every non-simple type is a module, and
   every high-level module is a type. ...
   A language construct combining the module and type aspects 
   is called a class."
dto. (p.72)
   "There are no other objects than class instances: any object
   is an instance of some class C. C is said to be the _type_ 
   of the object."

B. Stroustrup ('What is "Object-Oriented Programming"', article)
   "The declaration of class (that is, user defined type)..."

B. Cox ('OOP - An Evolutionary Approach', p.65)
   "... 'Betsy is a cow' is just a short way of saying 'Betsy is
   an instance of class cow.' In programming the same concept is
   often called type. ...
   The languages that support a fixed list of built-in classes 
   tend to use the word type, while those that allow the pro-
   grammer to define his own types favor the word class."

S. Khoshafian ('Object Orientation', p.49)
   "A class incorporates the definition of the structure as well
   as the operations of the abstract data type. Thus, a class 
   defines an abstract data type."

|>              This would be amazing news to most of the people who have
|>   been working on formal methods and OO systems.

Are the above books exotic?

I think a FAQ should not discuss 'all' the aspects of different 
definitions but give an overview of what all the posting is about.
Otherwise every article should have a preface like "I use objects
of Grandi-type (or class? ;-), I am talking about Hathaway-Classes...".

So IMO the Pre-Release FAQ works quite well so far. Maybe the questions
should be of the form "What is meant by xxx (in this group)?" instead
of "What is a xxx?".

-------------------------------+-------------------------------------------
Markus A. Beckmann             |E-Mail:
Johannes Gutenberg-Universitaet|beckmann@informatik.mathematik.uni-mainz.de
Institut fuer Informatik       |
D W-6500 Mainz                 |
-------------------------------+-------------------------------------------
Newsgroups: comp.object