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

===============>>#1 票数:4

DSL与SQL没有太大关系。

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

然后,您需要将DSL实现为解释器。 您将使用标准的词法 分析解析解释器 (或可能的编译器 )技术。 您很有可能需要使用或实现垃圾收集器 (或使用Boehm的GC )。 ANTLR这样的解析器生成器可以为您提供帮助。

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

在设计和实现自己的DSL之前,您确实应该阅读几种语言的书籍和论文。

一种实用的方法是将现有的解释器(例如Lua) 嵌入到您的应用程序中,或将您的应用程序嵌入到诸如ocamlpython 的解释器中

设计和实现良好的DSL并非易事(需要花费数月或数年的时间),并且需要一些计算机科学和编程文化以及专业知识。 阅读诸如DSL2011之类的会议记录可能会为您提供帮助。

除了C.Queinnec的书外,您还可以阅读《 编程语言:原理和范例》(毛里齐奥·加布里亚利和西蒙娜·马蒂尼)和《 七周内的七种语言:学习编程语言的实用指南》(泰特)和《 编程语言语用学》(by M.Scott)

  ask by user1011661 translate from so

未解决问题?本站智能推荐:

1回复

展开/折叠Swimlane(域特定语言)C#

我的表面上有多个泳道,是否可以为这些泳道提供展开/折叠功能? 我的泳道将包含不同的形状(图像形状),几何形状等。 我已经尝试过嵌套几何图形,但是它仅包含几何图形而不是图像图形,即我已经创建了一个其RectangleD类型的几何图形,并通过编写其局部类重写了Expand()和Collaps
2回复

测试特定领域的语言

我已经开发了图形域特定的语言。 我想将其用于基于模型的设计。 我有许多图形组件,其中包含有关该域的抽象信息,这些组件用于实现我的算法。 谁能告诉我是否有替代传统单元测试的方法来测试这些图形组件。 对这些模块进行单元测试是相当简单的,但是对于我的应用程序,我觉得它非常耗时且多余。 因
8回复

哪种语言(在JVM上运行)最适合创建DSL?

我们需要创建复杂的固定长度和可变长度的字符串。 这些字符串可能代表客户档案,订单等。您建议使用哪种基于JVM的编程语言? 想法是让最终用户使用此DSL创建字符串。 所以我正在寻找验证,代码完成等。
1回复

用于生成Java代码的内联域特定语言

我正在研究一个用Java执行矩阵和向量运算的程序。 在我当前的实现中发生的多函数调用和对象创建使其变得迟缓且难以理解。 例如,我想通过速度积分更新机械点的位置: 这里的API不自然,另外我需要为一个构建一个新的Vector3引用。 显然,当以这种方式内联计算时,我测量了实际用例
1回复

DSL和表单创建

我目前正在研究项目的需求/范围,可能涉及: 1)5至6表格 2)表格中包含250到300个问题/字段 3)2至3个工作流程 是否有任何.NET或跨平台工具可让我将开发表格的责任放回非技术业务分析师? 有没有适合的DSL? 我认为此人尝试为此使用InfoPath 不会成功。
1回复

DSL工具:使用自定义代码创建新图

我正在使用用于Visual Studio 2005的DSL工具。 我有一个DSL,我想在某个时候使用自定义代码创建一个新的Diagram。 到目前为止,我已经能够通过覆盖当前已经打开的图来创建新的图。 代码如下: 但是,我真正想做的是 使用新实例FEGenerator
6回复

使用Microsoft Visual Studio进行文本域特定语言(DSL)开发

我在视觉工作室开发了一些DSL。 最初,我发现VS2010有一个可视化和建模SDK。 它有一个名为DSL工具的工具。 但它似乎只适用于图形DSL开发。 然后我看到一些帖子说“奥斯陆”是用于开发文本DSL的工具,“这是”微软的产品 - 微软不再支持该工具。 http://blogs.
4回复

代表我的领域特定语言

我设计了一种非常简单的域特定语言(DSL),用于指定和执行设备上的全屏交互行为。 它是基于事件的动作语言,以XML作为载体语法。 它的示例在这里: <state no="15000" > <timeout>30</timeout> <
3回复

从头开始理解领域特定语言(DSL)的好教程,以开始调查论文

我的论文主题一般是关于领域特定的语言,我想专注于外部或内部DSL的设计或实现,但我甚至无法思考或开始因为我在理解DSL的概念时面临问题。 我已经阅读并收集了很多关于这个问题的论文和调查,但我认为所有这些都是高级的。我需要一个很好的教程(对于初学者)从头开始理解DSL的整个概念和阶段。
1回复

XText:如何为多种目标语言创建解析器

我在XText中定义了DSL,它会自动生成Java版本的语言解析器并生成代码生成框架,这真的很酷。 问题是我的DSL打算由使用多种语言实现的项目使用。 您可以想象,我们可能至少需要解析C#,Java和Ruby中的DSL。 所以问题是:有没有一种方法可以借助xtext生成多种语言的解