2009-11-17 13 views
9

Ho iniziato a progettare alcune lingue specifiche del dominio che probabilmente implementerò in Clojure, ma davvero non ho idea di cosa sia coinvolto.Qualcuno sa di un buon riferimento per il design DSL?

Le lingue che ho in mente sono intese come lingue astratte che sono leggibili da esperti di dominio con poco o nessun background di programmazione.

Qualcuno sa di tutorial, libri o altri riferimenti che potrebbero essere utili?

+3

Un google veloce di "Progettazione di lingue specifiche di dominio" sembra presentare una miriade di materiali di riferimento, tra cui un video di un'ora di David Pollack di Google (http://video.google.com/videoplay?docid=-8103284744220333344&q = ruby ​​#) – Lazarus

risposta

7

Potrebbe piacerti il ​​libro nascente di Martin Fowler Domain Specific Languages. È un work in progress e gran parte è disponibile online. È inteso per essere indipendente dalla lingua.

Qui di seguito sono alcune presentazioni da RubyConf che ho trovato utile (concetti almeno dovrebbe mappare Clojure):

+0

+1 - David Fowler sembra mostrare molte risposte, ma credo che abbia smesso di aggiornare il libro online mentre sta parlando con un editore. –

3

Language Implementation Patterns da Terence Parr, il creatore di Antlr e String Template, probabilmente i migliori strumenti per gene valutare parser e lexer.

Il libro è attualmente in "beta" ma è ancora una buona lettura. Se lo acquisti, riceverai aggiornamenti e anche la versione finale.

2

Sembra che tu stia descrivendo un DSL esterno. Per questo è necessario impostare un parser.

Hai due opzioni: scrivi la tua (che può essere difficile) o utilizza un sistema esistente come ANTLR per definire la grammatica. È Java quindi dovrebbe essere compatibile con Clojure.