2011-12-12 49 views
0
  1. 我想创建特定领域的查询语言
  2. 我需要步骤来创建它,以及如何从已创建域特定的查询语言转移到正常SQL查询来执行它。
  3. 和任何推荐的工具?

回答

4

DSLs与SQL关系不大。

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

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

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

在设计&之前,您应该先阅读几本关于几种语言的书籍&,然后才能实现您自己的DSL。

做一个实际的办法是嵌入现有解释Lua到您的应用程序,或嵌入一个解释内部应用程序像ocamlpython

的设计和实施良好的DSL是不是琐碎(几个月或几年的工作),并需要一些计算机科学&编程文化&诀窍。也许读DSL2011等会议的会议记录会对你有所帮助。

此外C.Queinnec的书,你也可以阅读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

我读到关于日食的XTEXT和我的理解,它提供解析器和词法...我的问题是什么是后步骤?? – user1011661

+2

下一步是阅读大量的论文和书籍,学习几个现有的DSL,并思考。 Lexing&Parsing是非常简单的部分。 –

+0

我加了一些参考文献 –

相关问题