zoom1 zoom2 zoom3

philippewang.info

XDML :: eXtensible Designed Multiparadigm Language

Description

XDML (eXtensible Designed Multiparadigm Language) est un langage de la famille ML qui correspond à peu près à un sous-ensemble du langage Objective Caml. Il a été créé dans le cadre d'un projet de Master d'Informatique de niveau 1. XDML se distingue d'Objective Caml par sa conservation des types à l'exécution, ce qui permet notamment d'avoir une fonction print de type 'a -> unit, et potentiellement la sérialisation sûre (“potentiellement” car non encore implantée). Le nom de module Self est réservé : il s'agit d'un nom générique pour le module courant. [...]

Sources

Ce projet n'est pas vraiment distribuable en l'état actuellement. Un jour, espérons-le, il sera distribué, probablement sous licence Gnu GPL.

Pour le moment, voici quelques extraits (les .ml sont pretty-printed by camlp4 pa_o.cmo pr_o.cmo), sous licence Gnu GPL version 2 :
  • Analyseur Lexical

    L'analyseur lexical intègre un pattern adapter car il n'a pas été prévu dès le départ pour correspondre au module Lexing de la librairie standard d'Objective Caml.
  • Analyseur Syntaxique

    Pour utiliser l'analyseur lexical proposé, il faut remplacer les occurences de "Lexing" par "Lexing2" dans le code généré par Mehnir (par exemple ainsi : sed -i -e "s/Lexing/Lexing2/g" parser.ml). (noter que parser.mly n'est pas compatible avec ocamlyacc) L'analyseur syntaxique a encore quelques comportements bizarres à corriger...
  • Représentation Abstraite : l'Arbre de Syntaxe Abstraite (Abstract Syntax Tree)

Auteurs

Les auteurs du langage XDML sont Jérémy Antonucci, Benjamin Canou, Adrien Piérard et Philippe Wang, ainsi qu'Emmanuel Chailloux qui a encadré le projet. Les extraits de codes sources actuellement présentés sur cette page sont de Benjamin Canou et Philippe Wang.

:: philippewang.info ::

:: design & photos by Philippe Wang :: XHTML 1.1 :: CSS 2 :: RSS 2 :: stats :: contact ::
:: Best viewed with Safari or Opera or Firefox or Links :: No SPAM Please ::
 
This page was generated on Tue Mar 11 21:32:29 CET 2008 by BashGXD