创建特定于域的查询语言的步骤是什么?

时间:2011-12-12 11:40:31

标签: dsl dsl-tools

  1. 我想创建特定于域的查询语言
  2. 我需要创建它的步骤以及如何从创建的特定于域的查询语言转移到普通SQL查询来执行它。
  3. 和任何推荐的工具??

1 个答案:

答案 0 :(得分:4)

DSL与SQL没有多大关系。

首先需要在纸上指定DSL。我强烈建议您在阅读有关编程语言的好书时。 (例如C.Queinnec的Lisp in Small Pieces)。

然后您需要将DSL实现为解释器。您将使用标准lexingparsinginterpreters(或可能compiler)技术。很可能您需要使用或实施garbage collector(或使用Boehm's GC)。像ANTLR这样的解析器生成器可以帮助你。

并行共同设计和实施DSL通常是一种很好的工作方式。

你真的应该读几本书和在设计之前就几种语言的论文和实现自己的DSL。

实现这一目标的一种实用方法是Lua之类的现有解释程序嵌入到您的应用程序中,或将您的应用程序嵌入到解释程序中,如{{ 3}}或ocaml

设计和实施一个好的DSL并非易事(几个月或几年的工作),并且需要一些计算机科学和技术。编程文化与知识。也许阅读像python这样的会议程序会对你有帮助。

除了C.Queinnec的书外,您还可以阅读DSL2011& Programming Languages: Principles and Paradigms (by Maurizio Gabbrielli & Simone Martini)& Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (by Tate)