Modélisation et classification de langages de programmation concurrente à objets : l'expérience Actalk

J-P. BRIOt

IBP-Litp 1994/59: Rapport de Recherche Litp / Litp research reports
15 pages - Octobre/October 1994 - French document.

Titre / Title: Modélisation et classification de langages de programmation concurrente à objets : l'expérience Actalk


Résumé : Cet article présente la conception d'une plateforme de modélisation, classification et expérimentation de programmation concurrente par objets. Notre motivation est d'offrir un outil qui peut aider à décrire, analyser, comparer, combiner, expérimenter, et enfin utiliser différents formalismes (modèles de calcul, langages de programmation, stratégies de synchronisation...) de programmation concurrente par objets. Cette plateforme, nommée Actalk, est implantée et intégrée à l'environnement de programmation Smalltalk-80. Actalk se fonde sur l'existence d'un noyau qui modélise la sémantique de base (c'est-à-dire des objets actifs et séquentiels communicant par envoi de messages asynchrone et unidirectionnel). Ce noyau se compose d'un ensemble de classes ainsi que de méthodes paramètres associées destinées à être redéfinies. Différentes extensions, définies comme sous-classes des classes du noyau, simulent divers formalismes de programmation concurrente à objets. Elles expriment différents modèles d'activité (séquentiel, concurrent...), de communication (synchrone, à réponse anticipée...), et de stratégies de synchronisation d'activation des requêtes. Dans cet article nous décrivons les motivations et les choix de conception de la plateforme Actalk ainsi que l'architecture de sa dernière version. Les choix de représentation, décomposition et de paramétrisation de l'architecture sont plus particulièrement discutés dans cet article. Nous résumons ensuite les différents formalismes actuellement modélisés comme sous-classes/extensions des classes composant le noyau. Nous présentons enfin un exemple développé pour illustrer l'expressivité de cette plateforme à travers la combinaison de deux formalismes de synchronisation dédiés à la programmation concurrente par objets. Enfin, avant de conclure, nous discuterons brièvement les intérêts de même que les limites de la plateforme, puis résumerons ses différents développements ainsi que les travaux similaires.

Abstract : This paper describes the design of a testbed for modeling, classifying and experimenting with object-oriented concurrent programming (OOCP in short). We aim at providing a tool to help describing, analyzing, comparing, combining, experimenting, and using various OOCP formalisms (computation models, programming languages, synchronization strategies...). This testbed, named Actalk, is implemented and integrated within the Smalltalk-80 programming environment. Actalk is based on some kernel which models basic OOCP semantic (i.e., serial active objects communicating through unidirectional asynchronous message send). This kernel is composed of a set of classes and their associated parameter methods intended to be further redefined. Various extensions, defined as sub-classes of the kernel classes, simulate various OOCP formalisms. They specify different models of activity (serial, concurrent...), communication (synchronous, with eager reply...), and synchronization strategies (for controlling activation of requests). In this paper we first discuss motivations and design decisions for the Actalk testbed. We then describe the architecture of the new version of Actalk. Representation choices as well as decomposition and parameterization of the architecture are specially discussed in this paper. We summarize various formalisms which have been actually modeled/simulated as sub-classes/extensions of the kernel classes. We finally introduce and detail one example combining two synchronization formalisms in order to show the expressivity of the platform. Before concluding we briefly discuss the merits and limitations of the platform and we summarize its various developments as well as related work.


Publications internes Litp 1994 / Litp research reports 1994