Abstract
There are several problems in the field of object-oriented parallel processing that have hampered programmers for years, and for which solutions have been elusive. We argue that the lack of solutions to these problems stems from the absence of a vocabulary with which to express those solutions. In particular, the inability to refer to objects by name, and the lack of a vocabulary to distinguish objects from each other, makes it difficult to even describe what is desired from a complex algorithm. When the runtime system can't identify which object is which, it becomes becomes impossible to express such ideas as locality, or interconnectivity, or grouping. Clearly, this is a serious problem for parallel programmers. We have designed a new encapsulation mechanism for parallel processing, the agent declaration. This mechanism makes it possible to create an abstraction whose subcomponents are labeled and taxonomized. Having done so, we straightforwardly address some of the difficulties that have been facing object-oriented parallel programmers for years. The purpose of this research is to explore the consequences of having a vocabulary by which to distinguish objects, and to experiment with powerful language-level constructs that were previously inexpressible.