- 我想创建特定领域的查询语言
- 我需要步骤来创建它,以及如何从已创建域特定的查询语言转移到正常SQL查询来执行它。
- 和任何推荐的工具?
0
A
回答
4
DSLs与SQL关系不大。
您首先需要在纸上指定您的DSL。我强烈建议阅读有关编程语言的好书。 (例如C.Queinnec的Lisp in Small Pieces)。
然后你需要实现你的DSL作为解释器。您将使用标准lexing,parsing和interpreters(或可能的compiler)技术。很可能您需要使用或实施garbage collector(或使用Boehm's GC)。像ANTLR这样的解析器生成器可以帮助您。
并行协同设计和实现您的DSL通常是一种很好的工作方式。
在设计&之前,您应该先阅读几本关于几种语言的书籍&,然后才能实现您自己的DSL。
做一个实际的办法是嵌入现有解释像Lua到您的应用程序,或嵌入一个解释内部应用程序像ocaml或python
的设计和实施良好的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)
相关问题
- 1. 什么是为复合CMS创建新语言的步骤?
- 2. 如何构建特定于域的查询语言?
- 3. 什么是“域特定语言”?
- 4. OrientDB的查询语言是什么?
- 5. 什么是测试域特定语言的好参考?
- 6. 需要什么步骤来创建一个没有越狱的新iOS语言
- 7. 什么是PostgresSQL查询语言考虑?
- 8. 什么是动作特定语言(ASL)?
- 9. 什么是用于创建图形的简单语言?
- 10. 使用xtext-xbase-xtend工具链创建简单的特定于域的语言
- 11. 春季创建webservice的步骤步骤
- 12. 在Vulkan中从阵列创建纹理的步骤是什么?
- 13. 创建“可执行文件包”的步骤是什么
- 14. 如何从终端创建git分支的步骤是什么?
- 15. 创建ipa文件的步骤是什么?
- 16. 在Bokeh python中创建雷达图表的步骤是什么?
- 17. 在yiiframework中创建AJAX登录的步骤是什么?
- 18. 什么查询语言用于查询SSAS 2012表格模型?
- 19. 使用Angular JS指令为表单创建一个特定于域的语言
- 20. 域特定语言IDE
- 21. F# - 领域特定语言
- 22. 什么是语言绑定?
- 23. 创建一个不是区域或语言特定的Rails“本地化”?
- 24. 学习BASIC后,语言学习的下一个逻辑步骤是什么?
- 25. 黄瓜:创建一个取决于另一个步骤的步骤定义
- 26. 用于C#语言的'this'是什么?
- 27. 添加具有特定“步骤”的查询列表中的值
- 28. 在MVC4中创建特定于语言的错误页面
- 29. 额外的步骤以汇编语言
- 30. 检测并查询特定语言
我读到关于日食的XTEXT和我的理解,它提供解析器和词法...我的问题是什么是后步骤?? – user1011661
下一步是阅读大量的论文和书籍,学习几个现有的DSL,并思考。 Lexing&Parsing是非常简单的部分。 –
我加了一些参考文献 –