EUROPA position paper for UCL

next up previous
Next: Defining Standard Object

EUROPA position paper for UCL

Jonathan Poolegif, Russel Winder and Graham Roberts

Department of Computer Science
University College London
Gower Street
London WC1E 6BT
United Kingdom

This paper sets out the position of the UCL research group on the EUROPA working group on parallel C++.

We agree with Denis Caromel that the aims of Europa are ambitious. The task of fully defining a parallel language based on C++ is difficult for several reasons:

  1. Parallel Object Oriented Programming is a relatively new and untested area: there are not well understood patterns of use.

  2. For a single processor machine the particular architecture does not impact heavily on the language: a single abstraction approximates them all very closely. This is not the case with parallel machines, where there is no single abstract model that approximates them all even reasonably well. This, coupled with the fact that parallel architectures are undergoing rapid development, makes it difficult to identify a small set of general and complete language features

  3. The base language C++ is itself not stable yet.

The approach adopted by INRIA to deal with these problems is to define a high level language flexible enough to define all possible parallel models. We agree that this is an interesting route to investigate, and in the long-term seems to offer extreme flexibility. However, the approach taken with the UC++ project is different: it is to `hard-wire' a finite but flexible set of parallel object behaviours. This has the advantage of being much easier: it does not require the creation of new compilers, but can instead be done by inserting macros into standard C++ code. Given the complexity and instability of the base language we believe this ability to be able to use standard C++ tools to be important.

We feel that the role of EUROPA should not be to choose between these and other languages but rather just to define an initial set of well defined parallel object behaviours that can be implemented in different parallel C++ languages. Languages that implement such behaviours directly or in which such behaviours can (and have been) implemented would then be seen as instance of EC++.

The distinction might be seen to be between whether Europa should try to define a standard, portable language based on C++ or just define certain standard parallel object properties that can be defined in different languages. Programs written relying on these properties can then be easily ported between the different languages. The aim should be to provide a mechanism for writing portable parallel programs rather than a portable parallel language.

There are two levels at which object behaviours might be defined: as whole bundles of behaviour or as collections of separate attributes. In practice EUROPA will probably want to define both. First we discuss the definition of standard object behaviours.

next up previous
Next: Defining Standard Object

Alistair McEwan
Fri Jul 14 15:45:16 BST 1995