Section: Overall Objectives
The Mimosa project is a joint project with the Centre for Applied Mathematics of the École Nationale Supérieure des Mines de Paris , and the Laboratoire d'Informatique Fondamentale of CNRS and the University of Provence and Méditerranée. The overall objective of the project is to design and study models of distributed and mobile programming, to derive programming primitives from these models, and to develop methods and techniques for formal reasoning and verification, focusing on issues raised by the mobile code. More specifically, we develop a reactive approach, where concurrent components of a system react to broadcast events. We have implemented this approach in various programming languages, and we aim at integrating migration primitives in this reactive approach. Our main research areas are the following:
Models of mobility. Here we study constructs for the migration of processes, especially in models based on the -calculus and its distributed variants, and on the calculus of Mobile Ambients.
Security. We develop methods and tools for the verification of cryptographic protocols, and we investigate some security issues related to the migration of code (static verification of non-interference of code with security policies, static restriction of the computational complexity of code).
Models and languages for reactive programming. We develop several implementations of the reactive approach, in various languages. We have designed, and still develop, an alternative to standard thread systems, called FairThreads . We intend to integrate constructs for mobile code in the model of reactive programming.
Functional languages. We develop several implementations of functional languages, mainly based on the Scheme programming language. Our studies focus on designing and implementing a platform for a distributed environment . The FairThreads , which have been added to Bigloo , our Scheme implementation, are at the heart of our client/server architectures. Skribe , a functional language for authoring documents, is designed to be used by servers to satisfy client requests.