ALIDECS

Langages et Atelier Intégré pour le Développement
de Composants Embarqués Sûrs


Ce projet est une ACI "Sécurité & Informatique"

 









 

ReactiveML

ReactiveML

REACTIVEML 3 est un langage de programmation généraliste fondé sur le modèle synchrone réactif de Boussinot et construit au dessus de OCAML. Il s'agit de proposer un langage de programmation permettant de décrire des systèmes où des composants réactifs peuvent être ajoutés ou retirés dynamiquement. Le langage mélange des traits d'ordre supérieur de ML, un modèle de la concurrence synchrone, et des aspects de création dynamique tels qu'on peut les trouver dans les langages asynchrones.

Le langage bénéficie d'une part des avantages des langages ML (ici OCAML) : inférence des types, types de donnée définissables par l'utilisateur et filtrage, gestion automatique de la mémoire et compilation efficace vers du code natif. D'autre part, les nouvelles constructions introduites en REACTIVEML sont des constructions de haut niveau pour la description des comportements réactifs. Ainsi, au niveau du langage, il y a des constructions de composition parallèle et de communication entre processus par diffusion instantanée d'événements.

La sémantique formelle de REACTIVEML (typage, sémantiques opérationnelles) est décrite dans [15,18,16]. Celle-ci prend en compte l'ensemble du langage et exprime, en particulier, les interactions entre les expressions ML et les constructions réactives.

Une implantation efficace a été réalisée. Les programmes REACTIVEML sont compilés vers du code OCAML sans mécanisme de concurrence à l'exécution. Cette implantation repose sur des techniques d'ordonnancement décrite dans [16].

Pascal Raymond 2006-11-16