HDTenEightyP/NetNews huggingface dataset:
From: santas@inf.ethz.ch (Philip)
Subject: Re: Object hidden state and side effects
Organization: Dept. Informatik, Swiss Federal Institute of Technology (ETH), Zurich, CH
Date: Wed, 23 Dec 1992 00:55:32 GMT

In article <BzKv4J.3Lt@cs.uiuc.edu> johnson@cs.uiuc.edu (Ralph Johnson) writes:
>
> Probably you can enforce
>reflexivity by stating that an object is equal with itself whenever you
>create a new object.  

I'm not sure you can do this if you use pointers:
If you define equality as equality of the adresses of _objects_,
then 

x == (x.increment)

might give you True :-(

>I don't have any idea about transitivity, nor about
>substitutability of equals for equals.

You cannot do this safely in an environment with side effects,
since we have the same case as above.

>If it turns out that there is a way to express that in Eiffel, how about
>my example of requiring that a function used by a sorter provide
>a total ordering on the collection to be sorted.  I guess you could
>do this for any particular finite collection by checking all triples.

But you cannot always provide a total ordering. You cannot even provide
a partial ordering: you can write the identity function in infinity
number of ways; can you provide an algorithm that orders a collection
of functions?

Philip Santas

  "In an evolving universe those who stand still are really moving backwards"
--------------------------------------------------------------------------------
email: santas@inf.ethz.ch				 Philip Santas
Mail: Dept. Informatik			       Inst. of Scientific Computation
      ETH-Zentrum			  Swiss Federal Institute of Technology
      CH-8092 Zurich				       Zurich, Switzerland
      Switzerland
Phone: +41-1-2547478
      

Newsgroups: comp.object
From: walkerl@med.ge.com (Larry Walker)
Subject: Re: Rumbaugh/OMT - Unix design tool needed
Followup-To: comp.object
Organization: GE Medical Systems
Date: Fri, 25 Dec 92 18:23:02 GMT

In article <Bzo3rp.5n0@fulcrum.co.uk>, rct@fulcrum.co.uk (Richard Taylor)
wrote:
> 
> I need a design tool based around the Rumbaugh/OMT method, that will run on
> a Sun. I have heard that Rumbaugh's company, General Electric, markets one.
> Does anyone have the email (or real) address for GE in the UK or Europe?
> 

Yes, we just had the GE Advanced Concepts Center's OOA/OOD class on-site a
couple of weeks ago. They brought along a copy of OM-Tool which we loaded
onto our sparcBook laptop and demo'd during the class. It looks pretty
good, as far as it goes: It only supplies a tool for the Object Model
portion of Rumbaugh's methodology. It does not address the Dynamic Model
(state-transition diagrams) or the Functional Model (data-flow diagrams).
We have a CASE tool that can do the 2 latter types of tools, but we are
concerned about having our model split between 2 packages (and across 2
data dictionaries)...


Larry Walker
System Architect
GE Medical Systems
Pewaukee, WI 53072
From: rumpe@Informatik.TU-Muenchen.DE (Bernhard Rumpe)
Subject: Re: A little glossary for objects
Originator: rumpe@sunbroy25.informatik.tu-muenchen.de
Organization: Technische Universitaet Muenchen, Germany
Date: Mon, 28 Dec 1992 14:30:30 GMT


In article <1992Dec27.014406.26583@mole-end.matawan.nj.us>, mat@mole-end.matawan.nj.us writes:
|> In article <1992Dec23.151238.3419@Informatik.TU-Muenchen.DE>, rumpe@Informatik.TU-Muenchen.DE (Bernhard Rumpe) writes:
|>  
|> > Little glossary of object oriented software developement
|> > ========================================================
|> ...
  
|> > INHERITANCE
|>  
|> > Inheritance is a binary, transitive, acyclic relation on classes.
|> > A subclass inherits the class specification (signature and behaviour)
|> > of a superclass and may extend it.
|> > 
|> > Comments:
|> > - A class may have one or several direct superclasses. This is called
|> >   single or multiple inheritance respectively.
|> > ...
|> 
|> I don't see how you classify inheritance as a binary relation.  Could you
|> be more specific?
|>
When deriving a new class X from a given class A, one establishes new
inheritance-relationships, namely (X -> S) where S is an arbitrary 
superclass of A (including A).
The same situation occurs with multiple inheritance: despite using several
superclasses A,B,..., only binary inheritance-relationships are established:
   (X -> S), where S is any superclass of A or B or...  

This definition also covers the (more unusual) case of deriving a new
class by generalisation: given two classes and building a new
superclass with their common behaviour and signature.

|> > - In many languages a subclass inherits also the structure of a superclass
|> >   and may extend it.
|> > ...
|> 
|> In such languages, the use of `sub' and `super' is often confusing, because
|> the subclass is represented by a superstructure on the superclass.  (Hence
|> the classic advice to OO'rs moving to C++: ``Don't say `sub' and `super,' say
|> `base' and `derived'.'')
|> 
We intend to seperate at least two cases of inheritance: the inheritance
of behaviour (semantically coverable with subtyping)
and the mere code-reuse, where nearly everything is allowed (namely
renaming,restriction,reimplementation ...).
It is a good suggestion to use 'baseclass' and 'derived class' in 
this framework.

Bernhard

-- 
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Bernhard Rumpe      Inst. f. Informatik (SB3), Technische Univ. Muenchen
                    Postfach 20 24 20,      8000 M"unchen 2,     Germany
rumpe@informatik.tu-muenchen.de     phone: ++49-89-2105-8129   fax -8183
Newsgroups: comp.object
From: Bob Hathaway <objsys@netcom.com>
Subject: Re: GCC 2.3.2 implementation of signatures for C++
Organization: Object Systems
Date: Thu, 24 Dec 1992 22:53:17 GMT

In article <1hbojuINNt6u@ector.cs.purdue.edu> gb@cs.purdue.edu (Gerald Baumgartner) writes:
>  [On adding abstract types to g++]

First, I'm glad to see abstract types introduced for widespread use.

>A distributed object capability is not done by just adding signatures.
>Our signatures are compile time type definitions.  The compiler uses
>them only for type checking purposes.  At run time, the only type
>information that's available is the signature table (similar to a
>virtual function table).  It is used to dispatch to the correct class
>method.
>
>To allow passing objects in a distributed environment, you need a
>run-time notion of signatures.  And you need to perform type checks
>(i.e., signature conformance checks) at run time when an object is
>sent from one machine to another.

In the general case, yes.  But statically not if you have the (remote)
declarations on the sender's side and compile them there.  This appears to
me to be the same distributed or not, with some additional issues in the
non-trivial cases that might come up in object-oriented operating systems
(distributed systems).

I don't have the papers with me, but I seem to recall Emerald has abstract
types with static checking *and* distributed object-oriented programming
all in one; I'll have to check.  I also seem to recall that distributed
programming was one of the driving forces behind Emerald's abstract types,
which provide the (at least static) loose coupling called for by
distribution.

>There is research done here at Purdue on building a distributed object
>system for a heterogenous programming environment, but this research
>is independent of the signature language construct for C++.  In fact
>it is independent of the programming language.

[With hand over heart]
From my old Alma Matter!  Who's doing the work?

bob
objsys@netcom.com
From: ded@kps.se (David Edwards /DP)
Newsgroups: comp.object
Subject: OO & transaction handling systems
Summary: Are OO based systems practical for large databases?
Date: 21 Dec 92 12:53:02 GMT
Organization: Kuwait Petroleum, Stockholm, Sweden


Hello.

Being a neophyte to OO design & programing, I am wondering how 
suitable OO based systems are for handling large amounts of data in 
the form of transactions. The system we are dealing with today is data 
collection and invoicing for large numbers of customers. (150.000 
customers billing 1,000,000 transactions / month).

Currently we program in C & Oracle on a Pyramid MIS. The thing that 
attracts me to an object way of doing things is that we have a large 
number of types of transactions. There are also many types of 
customers each of which have different functions associated with them. 

'Sounds object-like, doesn't it?  But there are a lot of practical
questions that are bothering me. Like:

1) Am I breaking new ground here if I jump into OO? 
   Does anybody have any experience out there with similar kinds of
   systems that are OO?

2) What advantages / disadvantages could one expect if one used C++ vs,
   say, Smalltalk for this kind of system?

3) Are there any products that can help with storage / access
   considerations? 

4) It is said that OO systems don't necessarily have performance problems.
   Is that true for OO systems as they grow in size? The size and 
   complexity were exactly why one chooses a relational DB. OO may help 
   me with the complexity, but can handle the amount of data? Recall 
   5 years ago relational DB were said to have performance problems in 
   this regard.

5) What (other) problems could I expect in implementation of OO for
   this kind of system?

Thanks in advance,

David Edwards
Kuwait Petroleum Svenska AB
Stockholm Sweden
===============================================================================
In theory, there is no difference between theory and practice.
But, in practice, there is.
From: bongalon@tcad05.intel.com (Ben Bongalon)
Newsgroups: comp.object
Subject: Re: Object hidden state and side effects
Date: 21 Dec 92 20:58:00 GMT
Reply-To: bongalon@tcad05.intel.com (Ben Bongalon)
Organization: Intel Corporation, Santa Clara, CA USA


In article <knight.724800099@cunews>, knight@mrco.carleton.ca (Alan
Knight) writes:
|> In <BzF7tn.22C@inews.Intel.COM> bongalon@tcad05.intel.com (Ben
Bongalon) writes:
|> >In article <knight.724558491@cunews>, knight@mrco.carleton.ca (Alan
|> >Knight) writes:
|> >|> However, what does identity mean for a value. If you tell a
|> >|> mathematician that two imaginary numbers are identical iff they are
|> >|> equal she will probably ask you what identity means?
|> 
|> >Here's an example:
|> 
|> >  1 + 2i  ==   (3-2) + (6/3)i  ==  1 + 2(i^5)
|> 
|> >  they all evaluate to the same value and can be normalized into
|> >  a unique representation.  thus, all 3 expressions are equal
|> >  (identical).  how can one get multiple copies?
|> 
|> This seems like an excellent example of what I was talking about. You
|> apparently do not disintguish between identity and equality for
|> complex numbers.  If my representation of complex numbers was, for
|> example, strings, then "1+2i" and "1+2(i^5)" are not in any normal
|> sense identical, but they are equal.

my question is:

why would you want to consider "i" and "(i^5)" as equal but not
identical values? Do you consider "1" and "(3-2)" equal but not 
identical also?  From a pragmatic point of view, the distinction
between the simplified and unsimplified forms of the expressions 
seem questionable.


|> If I, as a user, type in these two expressions on the keyboard, I
|> would expect to get separate instances of complex numbers (i.e.
|> multiple copies) of equal values.

Why? Unless there is a specific need for distinction, I as a user
would be more interested in the simplified form (ie, the semantic
definition) of an expression rather.  I don't want to distinguish 
the _infinite_ number of ways that a value can be represented in.


Ben Bongalon
Intel Corporation
Newsgroups: comp.object
From: drew@netcom.com (drew)
Subject: Re: Object-Oriented DataBase
Organization: Netcom Online Communications Services (408-241-9760 login: guest)
Date: Thu, 31 Dec 1992 19:14:57 GMT

I've emailed John directly, but in case any other readers are interested,
Objectivity/DB runs on the SGI platforms.  It's the leading ODBMS in
installed runtimes in use in production, with major applications in areas
including multi-media (apparently john's interest), telecommunication
(including real-time), case (including some very large systems),
cad/cam, financial, manufacturing, process control, transportation, etc.
It also runs on many other platforms, including all sun, all dec (incl vms),
hp/9000 series, ibm rs/6000, ms/dos and windows 3.1, etc.,
and any heterogeneous mixture of these, too.

For more information you may email info@objy.com and/or contact us
by phone, fax, mail, etc.  Here's some of our contact information:

Drew Wade
Objectivity, Inc.
800 El Camino Real
Menlo Park, CA  94025 USA
drew@objy.com
+1(415)688-8000 voice
+1(415)325-0939 fax
admin ass't:  Vickie Clements (vickie@objy.com)
information:  info@objy.com

Offices:

Corporate

800 El Camino Real
Menlo Park, CA  94025
+1(415) 688-8000
+1(415) 325-0939 fax
email:  info@objy.com

Sales Offices

Western Region
11050 Strathmore Drive #316
Los Angeles, CA  90024
+1(310) 208-6117
+1(310) 208-5677 fax

Eastern Region 
67 South Bedford Street
Suite 400W
Burlington, MA  01803
+1(617) 229-5817
+1(617) 272-0558 fax

Distributors

Japan

Yasushi Okazaki
Mitsui & Co., Ltd.
2-1, Ohtemachi 1-Chome
Chiyoda-ku, Toyko
Japan
+81(3) 3285-7343
+81(3) 3285-9925 fax

Taiwan

Richard Lee
Ares International Corporation 
3rd Floor, 111 Chung-Shan N. Road
Section 2
Taipei, Taiwan, R.O.C.
+886-2-522-1351
+886-2-523-4323 fax

Germany

Matthias Frei
Micram Microlectronic GmbH & Co. KG
Universist
tsstra'e 142
D-4630 Bochum
Germany
+49 234 97 08-304
+49 234 97 08-301 fax
email:  frei@micram.uucp

Sweden, Norway, Finland & Denmark

Kjell Hegerin
Norsys Technology AB
Finlandsgatan 12
Box 1239
S-164 28 Kista
Sweden
+46 8 750 75 75
+46 8 703 92 72

United Kingdom: England, Scotland, Ireland & Wales

Fred Peel
Valbecc Object Technology Ltd.
115 Wilmslow Road
Handforth, Wilmslow
Cheshire SK9 3ER
United Kingdom
+44 625 539903
+44 625 539905






In article <1992Dec31.004201.20167@odin.corp.sgi.com> jwd@corrado.denver.sgi.com (John W Davis) writes:
>I've had numerous requests from customers wanting to know
>if a good ObjectOriented data base exists on SGI; evidently SUN has
>something called "ObjectVision(sp?)"; these folk want to be able to
>hot key or hyperlink data (images video et al) into a data base that
>is object-oriented...any help will be appreciated...
>-- 
>***********************************************************************
>	John W Davis		|
>	Systems Engineer	|	email: jwd@denver.sgi.com
>	Silicon Graphics, Inc.	|	vmail:		9230
>	4600 So Ulster St	|	Phone: 303 796 0022
>	Englewood Colo 80237	|	Fax  : 303 796 0438
>**********************************************************************	


Newsgroups: comp.object
From: knight@mrco.carleton.ca (Alan Knight)
Subject: Re: Object hidden state and side effects
Reply-To: knight@mrco.carleton.ca (Alan Knight)
Organization: Carleton University
Date: Mon, 21 Dec 1992 14:34:56 GMT

In <knight.724904387@cunews> knight@mrco.carleton.ca (Alan Knight) writes:

>In <1992Dec20.162050.14652@midway.uchicago.edu> dave@alex.uchicago.edu (Dave Griffith) writes:

>>>Normal storage (or mutable values): State can be modified, but there
>>>is no identity operation. e.g. storage allocated on the stack in
>>>traditional languages. 

>>'Splain me, boss.  I'm feeling dumber than usual.

Let me try that again more concisely, having rested my brain cells.

Consider objects which are mutable but for which assignment is really
copying. An identity operation for such objects is meaningless because
no two can ever be identical. However, any individual object can be
modified. 
This is the normal case for data not represented by pointers in
traditional languages. 

-- 
 Alan Knight  knight@mrco.carleton.ca  +1 613 788 2600x1027 
 Dept. of Mechanical and Aerospace Engineering              
 Carleton University, Ottawa, Ontario, Canada, K1S 5B6
From: dave@alex.uchicago.edu (Dave Griffith)
Newsgroups: comp.object
Subject: Equality
Date: 21 Dec 92 18:44:05 GMT
Organization: University of Chicago

So just what exactly do you all mean when you say "equality".  If it's just 
another binary predicate, why bother to call it equality?  If not, what 
semantic properties should it have?  The recent object/value discussion brought
up some examples which cause me to question my preconceived notions.  I will
below attempt to list those notions, in hope the group will provide useful 
comments.   Throughout the following, "object" is used as in current OO 
languages, to represent both "objects" and "values".  

1) Equality should be reflexive.  
	I thought this was obvious, but IEEE754 may provide a counterexample.

2) Equality should be symettric.
3) Equality should be transitive.
4) Substitution of equals for equals should give equals.
5) If two objects are equal at one point in program execution, they should be
     equal at all points. 
6) Assignment should respect equality.   (Assuming no side-effects, after 
   executing x:=a; it should be true that x=a.
7) If your parameter passing model is based on assignment, 6) should hold 
   mutatis mutandi.
8) If two objects are equal, they should be behaviourally indistinguishable. 
   The converse need not hold, but often will.
9) Two sets A,B are equal iff  for_all(x:A)there_exists(y:B) such y=x, and
   vice versa.

Given mutable objects, identity was the only practical definition I found
which would  support all of the above.  However, identity is not a practical 
equality definition for all objects we wish to program with (vis, integers). 
In these cases, if immutability holds, users may be able to define equality
in ways which satisfy the above, and there are good reasons to let them try. 

This is comp.object, so presumably when people talk equality here, they don't 
mean bitwise or address equality, although these may be used as implementation 
techniques.   The following questions also arise do to object orientation: 
May two objects of different classes be equal?  May two objects be equal even 
if they don't respond to the same protocol?  If they respond to the same 
protocol but have no common superclass which defines that protocol 
(i.e. protocol similarity is incidental)?  

If programmers view equality as just another binary predicate, perhaps I 
should come up with a different name for the operation I need.  Any 
suggestions?

-- 
Dave Griffith, Information Resources, University of Chicago,
Department of Surgery                       dave@alex.bsd.uchicago.edu
A man's best friend is his dogma.
From: Kenneth.Kauer <Kenneth.Kauer@mixcom.mixcom.com>
Subject: Selling OOP to Accountants?
Organization: Milwaukee Internet Xchange BBS, Milwaukee, WI U.S.A.
Distribution: usa
Date: Mon, 28 Dec 1992 00:57:12 GMT

I will be asked within the next couple of months to put together a
presentation for the upper management of my company on the benifits of 
OOP.  These guys are mostly accountants and other non-engineering
types whose eyes will surely glaze over at the first mention of 
polymorphism or abstract base classes.  Therefore a different approach
would seem to be in order.

Anyone with experience in doing this?  Any ideas or suggestions?
Any references to articles, books and the like?

Please send email.  If I get enough input, I'll happily post a
summary to the net.

If I have posted to the wrong group or this question has appeared 
and been answered before, please be gentle (i.e. only low flames).
This is my first posting.

Thanks in advance.
-- 
----------------------------------------+-------------------------------+
Kenneth Kauer                           | The flea may bite at midnight,|
Harnischfeger Engineers Inc             | but the duck always quacks at |
Integrator of Automation Systems        | dawn.               -Anon     |
email: Kenneth.Kauer@mixcom.com         |                               |
----------------------------------------+-------------------------------+
#include <disclaimer.h>
Newsgroups: comp.object
From: mbehrens@barqs.amd.com (Mikael Behrens)
Subject: Re: Equality
Reply-To: mbehrens@ausun1.amd.com
Organization: Advanced Micro Devices, Inc.; Austin, Texas
Distribution: usa
Date: Tue, 22 Dec 92 16:29:26 GMT

In article <1992Dec21.184405.2215@midway.uchicago.edu> dave@alex.uchicago.edu  
(Dave Griffith) writes:
| So just what exactly do you all mean when you say "equality".  If it's just 
| another binary predicate, why bother to call it equality?  If not, what 
| semantic properties should it have?  The recent object/value discussion  
brought
| up some examples which cause me to question my preconceived notions.  I will
| below attempt to list those notions, in hope the group will provide useful 
| comments.   Throughout the following, "object" is used as in current OO 
| languages, to represent both "objects" and "values".  
| 
| 1) Equality should be reflexive.  
| 	I thought this was obvious, but IEEE754 may provide a counterexample.
| 
| 2) Equality should be symettric.
| 3) Equality should be transitive.
| 4) Substitution of equals for equals should give equals.
| 5) If two objects are equal at one point in program execution, they should  
be
|      equal at all points. 
| 6) Assignment should respect equality.   (Assuming no side-effects, after 
|    executing x:=a; it should be true that x=a.
| 7) If your parameter passing model is based on assignment, 6) should hold 
|    mutatis mutandi.
| 8) If two objects are equal, they should be behaviourally indistinguishable. 
|    The converse need not hold, but often will.
| 9) Two sets A,B are equal iff  for_all(x:A)there_exists(y:B) such y=x, and
|    vice versa.
[rest deleted]

I've always assumed that (in a true object-oriented environment) if two  
objects are equal, they are the same object.  Every unique object exists only  
once in the system; but there may be multiple *references* to it.  This notion  
of equality would agree with the above.  I don't know if any existing system  
realizes this yet.  I only have experience with Smalltalk80, and I don't think  
it prevents two instances of identical objects from existing simultaneously.

Mikael Behrens
Advanced Micro Devices
From: marcs@slc.com (Marc San Soucie)
Newsgroups: comp.object
Subject: Re: A Pre-Release FAQ
Keywords: FAQ
Date: 31 Dec 92 20:17:47 GMT
Article-I.D.: slc.1992Dec31.201747.26084
Distribution: na
Organization: Servio Corp, Beaverton Oregon, US

Bob Hathaway <objsys@netcom.com> writes:

> This is 4 hours worth of FAQ.

An heroic effort.


> What are Object-Oriented Databases?
> ...
> Another way of looking at Object-Oriented Databases is as a persistent
> object store with a DBMS.

This is a misstatement. It would be accurate to say that 'Object-Oriented 
Databases can be used as a persistent object store', but some of the OODB's 
do far more than just store client-created objects.

    Marc San Soucie
    Servio Corporation
    Beaverton, Oregon
    marcs@slc.com
Newsgroups: comp.object
From: klaus@hal.nta.no (Klaus Gaarder)
Subject: Re: Equality
Organization: Norwegian Telecom Research
Date: Wed, 23 Dec 92 12:34:38 GMT

In article <1992Dec22.234147.480@neptune.inf.ethz.ch>
santas@inf.ethz.ch (Philip) writes:

>equality is not the same as identity, and should not be like
>that, if you want to deal with non-trivial applications

To my knowledge the only sensible interpretation of 'equality' and the relation
usually written '=' is as _identity_. Ie, 'x=y' is interpreted as true iff x and
y denote _the same (mathematical)object_. The thread of discussion would probably
benefit from exchanging 'equality' with 'equivalent', since this seems to be what
the discussion is all about. Do not confuse 'equal to' with 'equivalent to'!

KLaus
-- 
    __o   
  _`\<,_  
 (*)/ (*) Claudio Caputti
+++++++++++++++++++++++++++++++++++++++^++++++++++++++++++++++++++++++++++++++
Free will - the result of chaotic amplification of quantum events in the brain.
------------------------------------------------------------------------------
Newsgroups: comp.object