A Generic Object-Calculus Based on Addressed Term Rewriting Systems
Daniel J. Dougherty, Kristoffer H. Rose, Frédéric Lang, Pierre Lescanne, Luigi Liquori, 69 (France). Lab. de l'Informatique du Parallelisme Ecole Normale Superieure de Lyon, 69 (France). Lab. de l'Informatique du Parallelisme Lyon-1 Univ., 69 - Lyon (France). Lab. de l'Informatique du Parallelisme Centre National de la Recherche Scientifique (CNRS) · 1999
In a previous paper we have outlined a framework (or a generic object-calculus) called \Obja, for modeling \textit{object calculi}. In this one, we would like to describe the foundations of \Obja{}. This framework is essentially a detailed formal operational semantics of object based languages, in the style of the Lambda Calculus of Objects. As a formalism for specification \Obja{} is arranged in \textit{modules}, permitting a natural classification of many object-based calculi according to their features, including their reduction-strategies. In particular there are modules for calculi of non mutable objects (\ie, \emph{functional object calculi}) and for calculi of mutable objects (\ie, \emph{imperative object calculi}). As a computational formalism \Obja{} is based on rewriting rules. Classical first-order term rewriting systems are not appropriate since we want to reflect aspects of implementation practice such as sharing, cycles in data structures and mutation. Therefore we define the notion of \textit{addressed terms}, and develop the corresponding notion of \textit{addressed term rewriting systems}.