2011-12-12 13 views
0
  1. Je veux créer le domaine langage de requête spécifique
  2. i besoin des mesures pour créer et transférer à partir du domaine créé langage de requête spécifique àrequête SQL normale pour l'exécuter.
  3. et tous les outils recommandés?

Répondre

4

Les DSL ne sont pas très liés à SQL.

Vous devez d'abord spécifier votre DSL sur papier. Je recommande fortement de lire de bons livres sur les langages de programmation en faisant cela. (par exemple Lisp in Small Pieces par C. Quinnec).

Ensuite, vous devez implémenter votre DSL en tant qu'interprète. Vous utiliserez les techniques standard lexing, parsing et interpreters (ou éventuellement compiler). Très probablement, vous devrez utiliser ou implémenter un garbage collector (ou utiliser Boehm's GC). Les générateurs d'analyseurs comme ANTLR pourraient vous aider.

La co-conception et la mise en œuvre de votre DSL en parallèle est généralement une bonne façon de travailler.

Vous devriez vraiment lire plusieurs livres & papiers sur plusieurs langues avant de concevoir & en mettant en œuvre votre propre DSL.

Une façon pratique de le faire est de incorporez un interprète existant comme Lua dans votre application, ou intégrer votre application à l'intérieur d'un interprète comme ocaml ou python

Concevoir et mettre en œuvre une bonne DSL n'est pas trivial (plusieurs mois ou années de travail), et nécessite un peu d'informatique & culture de programmation & savoir-faire. Peut-être lire les actes de conférences comme DSL2011 vous aidera.

En plus du livre de C.Queinnec, vous pouvez aussi lire Programming Languages: Principles and Paradigms (by Maurizio Gabbrielli & Simone Martini) & Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (by Tate) & Programmming Language Pragmatics (by M.Scott)

+0

j'ai lu sur xtext d'éclipse et je compris qu'il offre analyseur et lexer ... mon problème est quelle est l'étape après ?? – user1011661

+2

L'étape suivante consiste à lire beaucoup de papiers et de livres, à apprendre plusieurs DSL existants et à réfléchir. Lexing & parsing est la partie très facile. –

+0

J'ai ajouté quelques références –

Questions connexes