2009-11-17 20 views
9

He estado buscando diseñar algunos lenguajes específicos de dominio que probablemente implementaré en Clojure, pero realmente no tengo idea de lo que está involucrado.¿Alguien sabe de una buena referencia para el diseño de DSL?

Los idiomas que tengo en mente están destinados a ser lenguajes abstractos legibles por expertos en el dominio con poca o ninguna experiencia en programación.

¿Alguien sabe de algún tutorial, libro u otra referencia que pueda ser útil?

+3

Un google rápido de "Diseñar idiomas específicos de dominio" parece aparecer una plétora de materiales de referencia, incluido un video de una hora de David Pollack de Google (http://video.google.com/videoplay?docid=-8103284744220333344&q = ruby ​​#) – Lazarus

Respuesta

7

Puede que le guste el incipiente libro de Martin Fowler Domain Specific Languages. Es un trabajo en progreso y gran parte de él está disponible en línea. Está destinado a ser independiente del idioma.

A continuación se presentan algunas presentaciones de RubyConf que he encontrado útiles (conceptos, al menos, debería asignar a Clojure):

+0

+1 - David Fowler parece aparecer mucho en las respuestas, pero creo que dejó de actualizar el libro en línea, ya que ahora está hablando con un editor. –

3

Language Implementation Patterns por Terence Parr, el creador de Antlr y String Template, posiblemente las mejores herramientas para generar analizadores de tasa y lexers.

El libro se encuentra actualmente en "beta", pero sigue siendo una buena lectura. Si lo compra, obtendrá actualizaciones y también la versión final.

2

Parece que está describiendo una DSL externa. Para eso, necesitas configurar un analizador.

Tiene dos opciones: escribir la suya propia (que puede ser difícil) o utilizar un sistema existente como ANTLR para definir la gramática. Es Java, por lo que debería ser compatible con Clojure.

Cuestiones relacionadas