A Generic Object-Calculus Based on Addressed Term Rewriting Systems
Abstract
We describe the foundations of Obj^+a, a framework, or generic calculus, for modeling object-oriented programming languages. This framework provides a setting for a formal operational semantics of object based languages, in the style of the Lambda Calculus of Objects of Fisher, Honsell, and Mitchell. As a formalism for specification, is arranged in modules, permitting a natural classification of many object-based calculi according to their features. In particular, there are modules for calculi of non-mutable objects (ie, functional object-calculi) and for calculi of mutable objects (ie, imperative object-calculi). As a computational formalism, Obj^+a is based on rewriting rules. However, classical first-order term rewriting systems are not appropriate to reflect aspects of implementation practice such as sharing, cycles in data structures and mutation. Therefore we define the notion of addressed terms, and develop the corresponding notion of addressed term rewriting.