previous up next contents
Précédent : Recherche de composants Remonter : Actions de recherche Suivant : Typage et objets

Modularité

Participant : Xavier Leroy

Le travail de Xavier Leroy sur la conception et la formalisation de systèmes de modules a débouché cette année sur une implémentation ``grandeur nature'' de son système de modules dans le système Caml Special Light, décrit plus haut. Ce travail dote donc Caml d'un système de modules expressif (il atteint la puissance de celui de Standard ML, la référence en la matière), mais qui se prête cependant à la compilation séparée dans le style de Modula-2 (avec détection immédiate des erreurs de types inter-fragments, au contraire des modules de Standard ML, qui repoussent la détection de ces erreurs au moment de l'édition de liens). L'implémentation a confirmé la viabilité du système de modules et a permis de le mettre à l'épreuve sur des programmes réalistes (le navigateur MMM, le compilateur lui-même) et de le compléter sur certains points sous-estimés lors de l'étude théorique mais importants en pratique.

En parallèle, Xavier Leroy a également achevé l'étude théorique de ce système de modules en prouvant formellement la correction et la complétude de l'algorithme de typage, et en démontrant que sa restriction au premier ordre offre la même expressivité que le système de modules de Standard ML. Pour étendre ce résultat à l'ordre supérieur, Xavier Leroy a conçu et implémenté une extension de son système qui offre des foncteurs d'ordre supérieur d'une expressivité comparable aux foncteurs ``complètement transparents'' de New Jersey ML. Cette extension repose sur une sémantique non standard des foncteurs, la sémantique applicative (deux applications d'un foncteur au même type abstrait renvoient le même type abstrait), déjà proposée par François Rouaix dans le contexte du langage Alcool.


previous up next contents
Précédent : Recherche de composants Remonter : Actions de recherche Suivant : Typage et objets