我一直在研究设计一些领域特定语言,我可能会在Clojure中实现,但我真的不知道涉及到什么。
我所考虑的语言旨在成为抽象语言,可由具有很少编程背景或没有编程背景的领域专家阅读。
有没有人知道任何有用的教程,书籍或其他参考资料?
答案 0 :(得分:8)
你可能会喜欢Martin Fowler的新书Domain Specific Languages。这是一项正在进行的工作,其中大部分都可以在线获取。它的目的是与语言无关。
以下是我发现有用的RubyConf的一些演示文稿(概念至少应该映射到Clojure):
答案 1 :(得分:3)
String Template,可以说是生成解析器和词法分析器的最佳工具。
这本书目前处于“测试阶段”,但仍然是一本很好的读物。如果您购买它,您将获得更新以及最终版本。
答案 2 :(得分:2)
我的评估还在早期,因为这本书仍在完成,但 DSLs in Action ,http://www.manning.com/ghosh似乎很好。
您还可以查看在Boo中构建特定于域的语言,http://www.manning.com/rahien。
答案 3 :(得分:2)
看起来你正在描述一个外部DSL。为此,您需要设置解析器。
您有两种选择:编写自己的(可能很难)或使用现有系统(如ANTLR)来定义语法。这是Java所以它应该与Clojure兼容。