- 我想创建特定领域的查询语言
- 我需要步骤来创建它,以及如何从已创建域特定的查询语言转移到正常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. 如何构建特定于域的查询语言?
- 2. 需要什么步骤来创建一个没有越狱的新iOS语言
- 3. 什么是测试域特定语言的好参考?
- 4. 什么是动作特定语言(ASL)?
- 5. 什么是用于创建图形的简单语言?
- 6. 在Bokeh python中创建雷达图表的步骤是什么?
- 7. 在yiiframework中创建AJAX登录的步骤是什么?
- 8. 创建“可执行文件包”的步骤是什么
- 9. 在Vulkan中从阵列创建纹理的步骤是什么?
- 10. 如何从终端创建git分支的步骤是什么?
- 11. 什么查询语言用于查询SSAS 2012表格模型?
- 12. F# - 领域特定语言
- 13. 什么是语言绑定?
- 14. 创建一个不是区域或语言特定的Rails“本地化”?
- 15. 黄瓜:创建一个取决于另一个步骤的步骤定义
- 16. 添加具有特定“步骤”的查询列表中的值
- 17. 学习BASIC后,语言学习的下一个逻辑步骤是什么?
- 18. 用于C#语言的'this'是什么?
- 19. 是特定的API语言
- 20. 什么时候应该使用域特定语言?
- 21. 为什么Ruby on Rails称为域特定语言?
- 22. 制作域中立程序集的步骤是什么?
- 23. 如何在另一种语言之上开发特定于领域的语言?
- 24. 这是什么样的.NET查询语言?
- 25. SubSonic 2 Migrations插件:创建一个特定于MySQL的ForeignKey迁移步骤
- 26. 创建域特定的API
- 27. 什么语言被用来创建Python?
- 28. 什么是语句查询
- 29. 创建和发布自己的rubygem需要什么步骤?
- 30. 什么是postgresql的查询来解决这些相当复杂的步骤?
我读到关于日食的XTEXT和我的理解,它提供解析器和词法...我的问题是什么是后步骤?? – user1011661
下一步是阅读大量的论文和书籍,学习几个现有的DSL,并思考。 Lexing&Parsing是非常简单的部分。 –
我加了一些参考文献 –