OASIS

RSS

Intégration des collections topologiques et des transformations dans un langage de programmation fonctionnel

Monday, April 4, 2005
Julien COHEN (LRI/INRIA Futurs)

Les travaux présentés s'inscrivent dans le cadre du projet MGS. Ce projet a pour objectif l'étude de l'apport de notions de nature topologique dans les langages de programmation, leur développement et leur application à la conception de nouvelles structures de données et de contrôle à la fois expressives et efficaces. Ce projet se concrétise par le développement d'un langage de programmation expérimental, lui aussi nommé MGS, et par son application à la modélisation et à la simulation de systèmes dynamiques, en particulier dans le domaine de la biologie et de la morphogénèse.

Dans ce cadre, je me suis intéressé à l'étude et au développement des notions de collection topologique et de transformation. Une collection topologique est un ensemble de valeurs muni d'une relation de voisinage ; une transformation est une fonction définie par cas sous la forme de règles de réécriture s'appuyant sur la notion de voisinage. Ces notions peuvent s'intégrer dans un langage fonctionnel classique où elles ouvrent des perspectives justifiant à elles seules leur étude : un point de vue unifié sur les structures de données ; l'extension de la définition par cas des fonctions ; un cadre alternatif à la notion de polytypisme (une fonction est polytypique lorsqu'elle peut s'appliquer indifféremment à différentes structures de données). Ces trois points ne sont pas restreints aux types de données algébriques.

Après avoir présenté ces notions et le langage au travers de plusieurs exemples, j'aborderai plus formellement deux aspects des collections et des transformations. Le premier aspect concerne l'algorithme générique de filtrage, fonctionnant sur toutes les collections topologiques, qui est mis en oeuvre dans l'interprète MGS. Le second aspect constitue une étape préliminaire à l'élaboration d'un compilateur pour MGS. Il s'agit de la définition d'un système de typage permettant d'inférer le type des transformations vues comme des fonctions polytypiques s'appliquant à des collections hétérogènes. Enfin je montrerai comment une spécialisation de l'algorithme de filtrage et l'utilisation des informations de type peuvent mener au développement d'un compilateur MGS efficace.


More details here …
Yasmine.Charif (at) nulllip6.fr