Si je comprend bien tu veut faire un langage proche du SQL , et le compiler en différent langage target, du style C, java, C++, etc
Je pense qu'une manière de faire est de partir de l'existant pour la géneration de representation intermédiaire et de transformer l'arbre.
Ensuite vu que ta contrainte c'est de pouvoi faire du code pas trop évolué, ca doit pas ètre trop dure d'avoir une grosse partie du Backend génerique (pour les while, ..etc) et ensuite avoir des transformation spécifique pour les vérification.
Le liens donné ailleurs sur LINQ permet d'avoir un début pour savoir les technos utilisable, entre autre j'ai trouvé :
[^] # Re: LINQ
Posté par ham . En réponse au journal Création du projet "OQLToLang". Évalué à 2.
Je pense qu'une manière de faire est de partir de l'existant pour la géneration de representation intermédiaire et de transformer l'arbre.
Ensuite vu que ta contrainte c'est de pouvoi faire du code pas trop évolué, ca doit pas ètre trop dure d'avoir une grosse partie du Backend génerique (pour les while, ..etc) et ensuite avoir des transformation spécifique pour les vérification.
Le liens donné ailleurs sur LINQ permet d'avoir un début pour savoir les technos utilisable, entre autre j'ai trouvé :
http://en.wikipedia.org/wiki/Abstract_syntax_tree
http://www.hibernate.org/ -> integre un langage de query avancé et est open source : possibilité de récupérer le frontend pour générer l'AST, voir plus .
Ensuite la partie moins simple et de pouvoir avoir un système de backend flexible (adaptable aux différentes librairie utilisé.
l'OMG travaille sur un framework pour le refactoring : http://adm.omg.org , RFP#7 , mais c'est pas encore sortie.
http://www.polytech.unice.fr/~blay/ENSEIGNEMENT/LOG8/MetaMod(...)
Sinon on peut utiliser un système a base de XML pour utiliser les outils de transformation d'arbre existant (XSLT, XLS/FO ).