Outils pour créer un langage ( ) |
Ecrit le 28-11-2006 (3412 hits) ... section Compilation Dans certains contextes, il est parfois utile de créér un langage dédié de script par exemple. J'ai eu aussi une expérience en C dans laquelle j'ai créé un langage de configuration evolué pour un outil travaillant par batch sur une arborescence de répertoires. Ce langage avait pour objectif de controler au niveau local d'un répertoire les taches que devaient accomplir cet outil (traitement d'image, compression..). Cela passe par l'usage d'outils spécifiques, dont la finalité est de créer un compilateur dans le langage cible. En C, l'incontournable est Lex & Yacc, implémentés en opensource sous Flex & Bison. En Java, j'ai eu l'occasion d'evaluer javaCC et SableCC, qui sont tout deux de même richesse. D'approche objets, leur utilisation est vraiment plus accessible, avec la génération d'un AST (Abstract Syntax Tree), parcouru selon le design pattern du "Visiteur", donc très élégant. J'ai préféré utiliser SableCC pour plusieurs raisons, parmi lesquelles la licence d'utilisation et l'élegance générale d'utilisation. Enfin, il est utile de se documenter sur la notation BNF, car la description de la grammaire des langages se fait souvent dans un format qui s'en rapproche.
|