2

我正在寻找使用通用编程语言 (GPL) 实现的 DSL,例如 C#、Java、Scala 等。主要目标是调查软件行业日常使用的精心设计的 DSL 实现的各种重要属性。

如果您能指出这样的 DSL 实现(示例或存储库)并说明您认为它是一个好的 DSL 的原因,我将不胜感激。

谢谢,

阿迪尔·阿赫特


编辑1:

恕我直言,这篇文章有助于创建在当今软件开发中广泛使用的有趣流行 DSL 的列表(在搜索之后,至少我找不到任何涵盖所有 GPL 的此类列表)。

此列表的几个固有优势之一 - 它可用于创建它们所针对的 DSL 和域的分类。

以下是描述一些有趣的 DSL 和工具的相关链接:

DSL(按 GPL 分类):

  1. Ruby DSLs => Ruby DSL(领域特定语言)存储库,示例
  2. Clojure DSLs =>有 Clojure DSLs 吗?
  3. Scala DSLs => 有趣的 DSLs,在 Scala 中实现?
  4. C# DSLs => SharpDOM ( http://sharpdom.codeplex.com )

工具:

  1. Microsoft Visual Studio 可视化和建模 SDK:http ://code.msdn.microsoft.com/vsvmsdk
4

2 回答 2

1

查看 boost.spirit2 以找到一个非常复杂的主流语言的 DSL。否则,您可以查看 lisp 的任何方言,这使得编写 DSL 变得非常容易,因此您会发现很多。

于 2010-11-21T11:12:07.477 回答
1

您可能会考虑使用非过程技术来实现 DSL,例如(我们的)程序转换系统。我想你会发现它们非常强大。

于 2011-03-21T04:21:11.323 回答