2009-11-17 37 views
9

我一直在研究設計一些我可能在Clojure中實現的領域特定語言,但我真的不知道涉及到什麼。有沒有人知道DSL設計的一個很好的參考?

我想到的語言都是抽象語言,只有很少或沒有編程背景的領域專家纔可以讀取。

有誰知道任何教程,書籍或其他參考資料會有幫助嗎?

+3

「設計領域特定語言」的快速谷歌似乎出現了大量的參考資料,其中包括Google的David Pollack提供的一個小時的視頻(http://video.google.com/videoplay?docid=-8103284744220333344&q =紅寶石#) – Lazarus

回答

7

您可能會喜歡Martin Fowler的新書Domain Specific Languages。這是一項正在進行的工作,其中大部分都可以在線獲得。它旨在成爲語言不可知論者。

下面是一些RubyConf的演示,我發現有用的(概念至少應該映射到Clojure的):

+0

+1 - David Fowler似乎在答案中顯示了很多,但我相信他現在停止在線更新這本書,因爲他現在正在與出版商談話。 –

3

Language Implementation Patterns由特倫斯帕爾,AntlrString Template的創造者,可以說是最好的基因工具率解析器和詞法分析器。

這本書目前處於「測試版」,但它仍然是一個很好的閱讀。如果你購買它,你會得到更新,也是最終版本。

2

看起來您正在描述一個外部DSL。爲此你需要建立一個解析器。

您有兩種選擇:編寫自己的(可能很難)或使用現有系統(例如ANTLR)來定義語法。它是Java,所以它應該與Clojure兼容。

相關問題