Algèbre de processus

Famille de languages formels en informatique

Les algèbres de processus sont une famille de langages formels permettant de modéliser les systèmes (informatiques) concurrents ou distribués. Les algèbres de processus fournissent des outils formels permettant principalement de caractériser les interactions entre processus au sein d'un système concurrent ou distribué, les interactions prenant la forme d'échanges de messages. L'étude des algèbres de processus relève de l'informatique théorique, et leurs applications relèvent principalement du génie logiciel, en particulier des systèmes distribués.

Les différents calculs peuvent se distinguer par différents points : calcul synchrone ou asynchrone, calcul du premier ordre ou d'ordre supérieur (dans le second cas, les messages échangés sont des processus), etc.

Les principaux algèbres de processus utilisés sont :

Histoire modifier

La volonté de formaliser les systèmes concurrents se matérialise à la fin des années 1970 et au début des années 1980. Par exemple, Milner publie "A Calculus of Communicating Systems" en 1980[1], qui présente CCS. Dans son introduction, Milner indique que le développement de CCS s'inscrit dans la lignée du développement des réseaux de Petri présenté en 1962 et de CSP (1978).

Principales constructions modifier

Bien que les différentes algèbres comportent différentes constructions, des éléments de base (comme des primitives de communication ou de composition parallèle) se retrouvent au travers des différentes algèbres (avec parfois des différences subtiles).

Naturellement, les résultats et les caractéristiques de chaque algèbre dépendent des choix formels qui sont faits.

Le processus inactif modifier

Les algèbres comprennent une notion de processus inactif ou terminé, qui caractérise un processus ne pouvant interagir avec le reste de l'environnement. Le plus souvent, ce processus est noté   ou  .

Composition séquentielle modifier

La composition séquentielle permet de composer des actions ordonnées. Par exemple, dans CCS, la composition séquentielle est notée  , qui désigne un processus qui peut effectuer l'action  , puis l'action  .

Composition parallèle modifier

La seconde forme de composition est la composition parallèle, qui indique des actions qui peuvent s'effectuer sans indication d'ordre. Toujours dans CCS, la composition parallèle est notée  , qui désigne un processus qui peut effectuer   et  , dans n'importe quel ordre.

Communication modifier

Bien que toutes les algèbres de processus intègrent une notion de communication entre processus, il y a une grande variabilité dans la manière dont les communications sont gérées.

Ainsi, par exemple, dans CCS, la communication consiste simplement en la synchronisation entre deux processus sur une action : si on a un processus   et un processus   en parallèle, où   est l'action duale de   (noté   comme vu dans la section précédente); alors les deux processus peuvent, atomiquement, effectuer l'action   (resp.  ):   devient  .

Par ailleurs, il est possible d'avoir des formes plus complexes de communication. Par exemple, le  -calcul d'ordre supérieur permet l'échange de messages dont le contenu est lui-même un processus :   désigne un processus qui envoie le processus   sur le canal  ; par ailleurs, un processus   peut recevoir ce processus (lié à la variable  ) et l'instancier :   devient  .

Enjeux de recherche modifier


  1. Springer, editeur.