The Next 700 Concurrent Object-Oriented Languages *

Oscar Nierstrasz · 1993

Many of the shortcomings of present-day object-oriented programming languages can be traced to two phenomena: (i) the lack of general support for software composition, and (ii) the semantic interference between language features addressing operational and compositional aspects of object-oriented programming. To remedy this situation, we propose the development of a “pattern language” for active objects in which objects and, more generally , applications, are constructed by composing software patterns. A “pattern” can be any reusable software abstraction, including functions, objects, classes and generics. In this paper we seek to establish both informal requirements for a pattern language and a formal basis for defining the semantics of patterns. First, we identify some basic requirements for supporting object composition and we review the principal language design choices with respect to these requirements. We then survey the various problems of semantic interference in existing languages. Next, we present a formal “object calculus” and show how it can be used to define the semantics of patterns in much the same way that the λ calculus can be used to give meaning to constructs of functional programming languages. We conclude by summarizing the principle open problems that remain to define a practical pattern language for active objects.

Read the paper · More papers on PaperTik