HELP! formalizing OO

Tom Morgan tmorgan at acm.org
Sun Apr 26 16:42:58 UTC 1998


Florin,

> Could someone please point me to existing research in formalizing the OO
> approach (in relationship with fundamentals of Mathematics, Set Theory)?
> Thank you.
> 

Here are some reports that you could look at, to get an some ideas about
one try at this, involving something called the '* - calculus'. (That was
'pi - calculus' for those without fancy character displays)

ftp://ftp.cl.cam.ac.uk/users/rm135/ppi.ps.Z

ftp://ftp.cl.cam.ac.uk/users/rm135/as.ps.Z

ftp://ftp.dcs.warwick.ac.uk/reports/rr/217/bib.bibtex


The first one is a tutorial on the subject; the second is about
a related, more general structure, the third is *not* the paper,
just a formal citation for a research report on objects 
expressed in the pi-calculus.  If you track that one down, 
please send me a copy!

Be prepared for pretty thin air here; we are talking pretty high
up in the ozone.  The attempts are all admittedly imperfect, 
the folks who do this work don't have 'the answer' yet, even for
the problem they are considering, which is far short of a
seething mass of biological replicators, merrily attacking some
problem or other.

Here is my complete amateurs take on what this is about, please 
feel free to make fun of it (or me:-)

The folks who developed this stuff are worried about concurrency
in computation.  

There are several nice ways of giving a formal
description of a computation, when there is only one thing
going on at a time.  There is nothing nearly so nice, when
things can happen at the same time or at times which do
not stand in a clear relationship to each other.

One kind of attempt to deal with concurrency involves defining
a process algebra.

The pi-calculus is a more elaborate formal structure, basically
an algebra together with a partial ordering of the elements of the
algebra.

The connection with objects goes like this:

In a 'real' object system (one which approaches Alan's idea of
many interacting biological entities) each object
would have it's own computer to run on. Those objects, 
each with their own computer, are like the processes studied
by people interested in concurrency.

As a formal structure, the pi-calculus is a nice thing.  The first 
paper shows, for example, that you can imbed the lamda-calculus in it,
so you can indeed 'make a computer' with it. 

Formal structures are very nice things and good to look at (if you
can avoid breaking out in hives).  I am pretty sure that they
are a useful part of understanding the kind of programs we like
to make, but only a part.

If you look at the bottoms of programs, you can usually convince 
yourself that they are 'right' in some more or less universal 
sense.  (Like they do addition correctly).

By the time you get to the 'tops of programs', the parts where they
interact with us, that gets to be questionable.  The
real reasons in this area of programming often boil down to
'because we say so' and it's hard to see how to formalize that.

   ...Tom M 

-- 
+---Tom Morgan ------------------------------ (tmorgan at acm.org) -----+
I   Brooklyn Union                          Phone: 1 718 403 2427    I
I   1 MetroTech Center                      Fax:   1 718 488 1752    I
+---Brooklyn, New York 11201 USA ------------------------------------+





More information about the Squeak-dev mailing list