Programmation réactive synchrone : langage et contrôle des ressources
Institution:
Paris 7Disciplines:
Directors:
Abstract EN:
Reactive System continuously interact with an environment. Synchronous languages (a family of languages dedicated to the design of such Systems) are used to describe parallel behaviours running in a synchronous way, with respect to a logical clock associated to an instantaneous broadcast of the information. The design of those languages enables a compilation of programs to sequentiel code, finite state automata or circuits. Yet the constraints set on their design to reach this goal restrict their use to very specific fields. Reactive programming is a paradigm based on a relaxation of those constraints. More precisely, il is inspired by the Esterel language and may be used for programming, e. G. , event driven controllers, graphical user interfaces, physical simulations, web services and multi-player games. This document, split into two parts, deals with the notion of safety in the framework of reactive programming. In the first part, we consider the issue of controlling, by means of a static analysis, the resources needed to run programs of a synchronous process algebra inspired by the reactive paradigm. In the second part, we are interested in programming multicore architectures. We propose a programming discipline, enforced by a static analysis, which extends to a more general framework the advantages of the purely cooperative approach (scheduling) used in various languages based on the reactive paradigm.
Abstract FR:
Les systèmes réactifs maintiennent une interaction permanente avec un environnement. Les langages synchrones (une famille de langages dédiée à la conception de ces systèmes) permettent la description de comportements parallèles s'exécutant de manière synchrone, relativement à une horloge logique associée à une diffusion instantanée de l'information. La conception de ces langages permet une compilation des programmes vers du code séquentiel, des automates à états finis ou des circuits. Toutefois, les contraintes imposées pour atteindre ce but limitent l'utilisation de ces langages à des domaines très spécifiques. La programmation réactive désigne un paradigme de programmation basé sur une relaxation de ces contraintes. Inspirée plus particulièrement par le langage Esterel, elle permet la programmation, e. G. , de contrôleurs "event driven", d'interfaces graphiques, de simulations physiques, de services web et de jeux multi-joueurs. Ce document, divisé en deux partie, porte sur la notion de logiciel sûr dans le cadre de la programmation réactive. Dans la première partie, nous traitons de la question du contrôle statique des ressources nécessaires à l'exécution des programmes d'une algèbre de processus synchrone inspirée par le paradigme réactif. Dans la seconde partie, nous nous intéressons à la programmation d'architectures multicores. Nous proposons une discipline de programmation, imposée par une analyse statique, qui permet d'étendre à un cadre plus général les avantages de l'approche purement coopérative (ordonnancement) choisie par plusieurs langages basés sur le paradigme réactif.