thesis

Etude des modeles d'execution des langages fonctionnels et imperatifs : application a un evaluateur scheme

Defense date:

Jan. 1, 1999

Edit

Institution:

Paris 6

Disciplines:

Authors:

Abstract EN:

Pas de résumé disponible.

Abstract FR:

Un langage de programmation moderne se doit d'etre ouvert aux langages pour, ainsi, utiliser les bibliotheques de programmation existantes. A travers l'etude d'un langage fonctionnel, scheme, et d'un langage imperatif, c, ce travail montre les differents points de l'interface a realiser pour faire vivre ensemble harmonieusement les deux mondes. La solution proposee passe par une representation des donnees particuliere ou la donnee et son descripteur (qui permet de renseigner l'evaluateur sur le type de la donnee) sont physiquement separes. Les principaux avantages de cette technique sont de pouvoir manipuler les donnees c sans les modifier, et de supporter les analyses de type pour les langages dotes d'un mecanisme de verification dynamique de type. Il est alors possible de melanger simplement des parties de code typees et non typees au sein d'un programme. Cela permet aussi de disposer d'un interprete facilement embarquable et extensible dans des applications c. Nous presentons les details du fonctionnement de ce systeme, de ses possibilites et de son cout a travers la realisation d'un interprete et d'un compilateur scheme vers c. Nous donnons les details de l'interface ainsi que des exemples d'applications de notre representation. De plus, nous presentons des solutions pour implanter certains points comme les renvois (callback) de fermeture scheme et l'application dynamique de tous les objets fonctionnels de l'evaluateur (apply avec des fonctions c quelconques). Malheureusement, le c iso ne suffit pas pour implanter ces points, il existe des solutions utilisant l'assembleur mais nous proposons des solutions originales basees uniquement sur des extensions de gcc. Au final, nous proposons une facon originale de concevoir un evaluateur scheme qui simplifie considerablement l'interface avec c. Les idees de ces travaux sont facilement applicables avec d'autres langages.