Titre : Environnement de développement pour OCAMiL Plugin Visual Studio .NET pour O'CAMiL Laboratoire : Preuves, Programmes et Systèmes (PPS) Lieu du stage : 175, rue du Chevaleret, 75013 Paris Responsable du stage : Emmanuel Chailloux mél : Emmanuel.Chailloux@pps.jussieu.fr tél : 01 44 27 61 99 1 - Contexte * plate-forme .NET La plate-forme .NET se veut un creuset où s'intégrent différents langages dans un cadre commun tant du point de vue du système de types CTS (Common Type System) que de l'environnement d'exécution CLR (Common Language Runtime). Chaque compilateur de langage produit un code intermédiaire portable MSIL (MicroSoft Intermediate Language) qui est ensuite assemblé et exécuté. Une application .NET ne s'intéresse pas aux langages sources des composants qu'elle manipule. Leur conformité au système de types garantit leur interopérabilité. * compilateur O'CAMiL OCAMiL est une implantation du langage O'CAML pour .NET, il est pleinement compatible avec les distributions O'Caml de l'Inria. Il produit du code géré (managed code) pouvant être vérifié et utilisé dans des applications réalisées dans d'autres langages. Le compilateur O'CAMiL est bootstrappé. Il possède un mode interactif (toplevel) qui compile et exécute à la volée les phrases de l'utilisateur. * Visual Studio Visual Studio .net est l'environnement de développement .NET de Microsoft. Il possède un mécanisme de plugin pour intégrer de nouveaux langages. 2 - But Le but de ce projet est la réalisation d'un plugin Visual studio .net pour O'CAMiL. Ce projet peut être découpé en trois niveaux : * construction du plugin de base (éditeur + compilation) * intégration de traits spécifiques O'CAMiL (typage et toplevel) * étude sur la mise au point O'CAMiL (debug) 3 - Prérequis Connaissance du langage O'Caml Références [1] .NET : http://www.microsoft.com/net [2] O'Caml : http://caml.inria.fr [3] OCAMIL : http://www.pps.jussieu.fr/~montela/ocamil [4] Visual Studio : http://msdn.microsoft.com/vstudio/ [5] SML.NET : http://www.cl.cam.ac.uk/Research/TSG/SMLNET/ [6] F# : http://research.microsoft.com/projects/ilx/fsharp.aspx