Thèse soutenue

Langages fonctionnels, typage et interopérabilité : objective Caml sur .net

FR  |  
EN
Auteur / Autrice : Raphaël Montelatici
Direction : Emmanuel Chailloux
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 2007
Etablissement(s) : Paris 7

Résumé

FR  |  
EN

La plate-forme. NET est un environnement d'exécution moderne et répandu, reposant sur une machine virtuelle qui interprète du code-octet typé. Elle prétend être parfaitement adaptée à l'exécution de composants écrits dans une grande variété de langages de programmation et faciliter leur interopération, En tant que langage fonctionnel statiquement typé avec polymorphisme paramétrique, Objective Caml présente des caractéristiques qui défient l'environnement d'exécution. NET et son système de types. Nous expérimentons ces difficultés dans un cadre pratique, par la conception et l'implantation de OCamIL, un compilateur complet pour Objective Caml qui produit du code-octet. NET vérifiable. Ses objectifs principaux sont la compatibilité et la possibilité d'interopérer. Ce travail met à l'épreuve les capacités de la plate-forme. NET autant que l'adéquation de l'implantation officielle de Objective Caml dans un tel projet (celle-ci est conçue pour un environnement d'exécution dénué de types ce qui explique qu'elle élimine les informations de types assez tôt dans la chaîne de compilation). Nous examinons la représentation des valeurs Caml et comparons deux stratégies ; la reconstruction et la propagation de l'information de typage manquante. D'autres choix de conception décrits ici illustrent le compromis entre efficacité d'une part et clarté/interopérabilité de l'autre, Nous réalisons l'interopérabilité à l'aide d'un langage de description d'interface IDL qui construit un pont entre les deux systèmes de classes distincts utilisés par Objective Caml et l'environnement typé de. NET. Les bénéfices de l'interopération sont illustrés par des exemples non-triviaux, Au chapitre des performances, OCamIL occupe une place respectable au sein des compilateurs de langages fonctionnels sur. NET. Nous comparons également les exécutables iNET avec les programmes Objective Caml originaux.