Team oasis

Members
Overall Objectives
Scientific Foundations
Application Domains
Software
New Results
Contracts and Grants with Industry
Other Grants and Activities
Dissemination
Bibliography
Inria / Raweb 2002
Project: oasis

Project : oasis

Section: Scientific Foundations


Keywords : programmation à objets répartie , analyses de programmes , code mobile , collecticiels , communication de groupe , concurrence , distribution , synchronisation , sécurité .

Programmation objet, concurrence et répartition

Le paradigme objet, même s'il date des années 70, reste un des aspects des langages de programmation les plus étudiés de nos jours. Ces dernières années, avec l'apparition du langage Java, on a pu observer une recrudescence de l'activité autour de la méthodologie objet. Autant le concept se veut universel, autant les variations des modèles et leurs implémentations possèdent des propriétés spécifiques souvent mal définies : sous la même terminologie objet, se retrouvent des thèmes particuliers, comme l'héritage (simple ou multiple), le sous-typage, la surcharge, etc.

D'autre part, les aspects programmation concurrente (en particulier, multi-threading, accès concurrents) viennent apporter un degré supplémentaire de complexité. Le mélange de l'ensemble de ces traits peut faire apparaître des cas où la spécification du langage reste floue et pour lesquels la construction d'applications et leur mise au point restent délicates.

Le langage Java peut être également abordé comme un langage très prometteur pour la programmation distribuée sur un réseau ; l'arrivée de Java a laissé espérer que l'on pourrait distribuer des applications haute performance sur le réseau Internet, premier pas vers le méta-computing. Malheureusement, les composants Java standards tels que RMI (Remote Method Invocation) n'aident en fait pas à construire de manière transparente des applications séquentielles, multi-threadées, ou distribuées, en permettant l'exécution d'une même application sur une architecture multi-processeurs à mémoire partagée aussi bien que sur un réseau de stations de travail (intranet, Internet), ou encore sur n'importe quelle combinaison hiérarchique des deux.

La question est donc : comment construire, à partir des outils standards (par exemple threads, RMI, etc), des modèles et bibliothèques facilitant la programmation distribuée ?

Nous avons développé des compétences en programmation concurrente, répartie et parallèle dans le cadre des langages à objets ; ces recherches sont menées aussi bien sur des aspects théoriques comme les sémantiques formelles, ou les analyses statiques et transformations pour la répartition automatique ou semi-automatique, que sur des aspects pragmatiques comme la conception de langages et de méthodes de programmation , ou la construction de bibliothèques pour le parallélisme .


previous
next