Proposal: exposing the implementation
A postscript version of this whole document is available
The latex source is available here
This proposal concerns a change in philosophy for UC++. At present
the way that communication between active objects is conducted behind
the scenes is deliberatly hidden from the user of the language.
I believe this is not appropriat, but instead, while it should be
possible to create UC++ programs without any knowledge of the
implementation, it should also be possible for the programmer to
examine and change parts of the implementation in a structured way
according to the needs of the program and architecture. We should
move towards something more like an `Open Implementation'.
There are several reasons why I think this is appropriate:
- C++ is that sort of language. People that want to be hidden
from the implementation won't be using C++---they should be using
Haskell or Smalltalk. C++ is a good language, if it is a good
language at all, precisely because it allows detailed control of
things like memory management, allocation, type conversion and so
on---where there are default behaviours which can be overridden if
- Parallel architectures vary so much that presenting a single
simple interface (active objects) is not sufficiently flexible to
produce portable, efficient program
- there are many different emerging standard in parallel and
distributed computing (CORBA, MPI, OSF/DCE...) and it is not
possible or useful to try and build compatibility to all of them
into the language. However, people will undoubtably want this
compatibility: we should provide means for this to be added to UC++.
- Open Implementations are in and of themselves a Good Thing.
Wed Aug 2 17:53:27 BST 1995