The overall objective of the
Mimosa project is to design and
study models of concurrent, 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 code mobility. 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 have integrated migration primitives in
this reactive approach. In the past we also intensively studied
models of mobility, like the π-calculus and its
distributed variants, and the calculus of Mobile Ambients. Our main
research areas are the following:
- Security. We investigate security issues like
confidentiality and resource consumption, using static analysis
methods (for the verification of non-interference of programs with
respect to given security policies, and of computational complexity),
with an emphasis on the issues related to concurrent and mobile
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 study the integration of
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. All our developments on the web rest on these
implementations.
- Web programming. We design and implement a programming
environment for the web 2.0. It relies on a new distributed
programming architecture where a program executes simultaneously on a
server and a client. We aim at providing a realistic implementation
that we constantly validate by developing and using end-users
web applications.