![]()
Précédent : Gamma Structuré Remonter : Les types
graphes Suivant : Architectures de
logiciels
Participants : Pascal Fradet, Daniel Le Métayer De nombreuses erreurs de programmation ne sont pas détectées par les systèmes de types des langages impératifs. Leur manque d'expressivité les rend incapables, par exemple, de distinguer une liste doublement chaînée d'un arbre binaire. Nous avons proposé une solution à ce problème avec Shape-C, une extension de C intégrant la notion de type graphe (ou shape type ) [13]. On utilise en fait un sous-ensemble des types graphes de Gamma Structuré qui correspond aux structures de données manipulées dans les programmes impératifs. Il devient possible de décrire précisément et de manipuler des structures classiques comme les listes circulaires, les listes avec sauts, les arbres binaires avec pointeur parent, etc ... Parmi les avantages de Shape-C on peut citer:
Une expérience de la programmation en Shape-C est nécessaire afin d'évaluer en pratique l'efficacité du vérificateur de types ainsi que l'expressivité, la souplesse et le champ d'application des shapes. A cet effet, un pré-processeur, traduisant des programmes Shape-C en C pur après vérification de types, est en cours de réalisation.