我一直在研究设计一些领域特定语言,我可能会在Clojure中实现它们,但我真的不知道涉及哪些内容。
我所想的语言是旨在为领域专家提供可读性强的抽象语言,这些专家可能没有或只有很少的编程背景。
有没有人知道任何有用的教程、书籍或其他参考资料?
我一直在研究设计一些领域特定语言,我可能会在Clojure中实现它们,但我真的不知道涉及哪些内容。
我所想的语言是旨在为领域专家提供可读性强的抽象语言,这些专家可能没有或只有很少的编程背景。
有没有人知道任何有用的教程、书籍或其他参考资料?
您可能会喜欢马丁·福勒(Martin Fowler)正在撰写的书籍《领域特定语言》。这是一项正在进行中的工作,其中大部分内容都可以在线获取。它旨在成为语言无关的。
以下是我从RubyConf中发现有用的演示文稿(至少概念应该与Clojure相匹配):
《语言实现模式》是由Antlr和String Template的创造者Terence Parr所著,这两个工具被认为是生成解析器和词法分析器最好的工具。
虽然该书目前处于“beta”版本,但它仍然是一本不错的读物。如果您购买该书,您将获得更新以及最终版本。
看起来你在描述一个外部DSL。为此,你需要设置一个解析器。
你有两个选择:编写自己的解析器(可能很困难)或使用现有系统(如ANTLR)定义语法。它是Java编写的,因此应该与Clojure兼容。