previous up next top index
Précédent : Les types graphes Remonter : Les types graphes Suivant : Shape-C


Gamma Structuré

Participants : Pascal Fradet, Daniel Le Métayer

Gamma permet une description abstraite des programmes, dépourvue de contraintes d'ordonnancement inutiles [6]. On peut illustrer le comportement des programmes Gamma à l'aide de la métaphore de la réaction chimique  : l'exécution est une succession de réactions chimiques consommant les éléments d'un multi-ensemble pour produire de nouveaux éléments selon certaines règles.

Un des objectifs du projet BRA Coordination [1] était d'intégrer dans le langage un moyen de définir des données plus structurées sans pour autant remettre en cause le modèle de calcul de base. La difficulté vient du fait qu'on ne peut recourir à la méthode habituelle pour définir des structures de données (les types récursifs) car ceci induirait un style de programmation récursive (avec une manipulation globale des données) incompatible avec les principes de Gamma. Les types graphes permettent une description des structures de données de nature topologique, sous forme de relations entre les valeurs du multi-ensemble [24]. Ces types peuvent être vus comme des invariants sur les multi-ensembles, le point crucial étant que ces invariants peuvent être prouvés automatiquement [11]. On obtient ainsi une vérification de types pour Gamma Structuré. Il faut noter que ces types ne contraignent pas les valeurs du multi-ensemble, mais les relations qui les relient. Le bénéfice est double :