是否有设计DSL的设计指南,教程或模式?

时间:2010-05-03 13:25:18

标签: design-patterns dsl

我不是在寻找框架或工具,而是寻求建议如何从一个粗略的想法变成一个不错的DSL。

5 个答案:

答案 0 :(得分:2)

Martin Fowler的正在进行的工作“Domain Specific Languages”在its introductory chapter中包含了一个很好的例子(本书的大部分内容可在线获取)。他的related bliki page也值得一读,并包含一些其他资源的链接。

在非福勒的消息来源中,Jeremy Miller的模式和实践文章“Internal Domain Specific Languages”可在网上找到。 (好吧,他不是完全非福勒的来源。)

答案 1 :(得分:1)

你的问题是一个相当开放的问题 - 但这是一个非常有趣的问题。一般来说,您不仅要考虑应用程序字段,还要考虑要对设计强制执行的属性。

关于这个主题的学术工作很好,希望以下论文可以帮助你开始:

  • “从程序系列到特定领域语言”是试图揭示DSL设计过程。这是我在阅读你的问题时想到的第一个article,其中有两个与之相关。
  • 有关DSL的高级概述,请尝试“DSLs:好的,坏的和丑的”,面向对象编程系统语言和应用会议中的paper;
  • “开发DSL编译器的生成式编程方法”将您从高级规范转变为DSL。 article提供了一种基于生成编程工具开发DSL编译器的方法,以及案例研究。

希望这有帮助!

答案 2 :(得分:0)

DSL book from Martin Fowler(尚未发布)。

答案 3 :(得分:0)

我的建议是从内部DSL到外部DSL开始。 Lisp和Ruby等语言可以轻松创建内部DSL。从内部DSL开始的优势是您不必担心解析。它快速而简单。

另一种可以轻松创建DSL的语言是TCL。一切都是一串!如果您使用tclkit,那么您可以将整个DSL + TCL包装成一个单独的可执行文件并随处运送。

答案 4 :(得分:0)

此外,您可能需要查看由http://department.st.ewi.tudelft.nl/course/in4308提供的Eelco Visser博士的模型驱动软件开发课程的内容,该课程讨论了MDSD和DSL开发的各个方面。

希望有所帮助!

干杯,

阿迪尔