2011-12-12 69 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

我加了一些參考文獻 –

相關問題