Más sobre Domain-Specific Languages

En el post Sobre generación de código he recibido varios comentarios. Gracias a todos, por aportar algo y comentar. Uno de los comentarios, es de Jorge Ubeda. Recomendaría visitar su blog:

Hacia la cuarta generación del software

donde tiene varios artículos sobre los temas de Domain Specific Languages, MDA, MDD, y demás. En especial, su tags sobre DSL, MDA…:

DSL
MDA
Modelado

Vean también los blogs recomendados por Jorge, un ejemplo:

http://www.fabricadesoftware.cl/

En el comentario que me dejó Jorge, escribía:

SQL un DSL? no me parece atinado su uso por Microsoft como un ejemplo de un Domain Specifc Language, al menos si se propone que estos sean construíbles. Con este criterio DSL es un éxito total, vivimos rodeados de DSLs (podríamos llamar así a Visual Fox o semejantes), y no atendemos su uso propuesto actual.

En mi post, ponía como DSL al lenguaje SQL. Quería aclarar que en ese post lo uso a mi manera y parecer, aunque parece ser es la posición de Microsoft. Pueden ver algo de lo que propone esta empresa como herramientas para DSL:

Domain-Specific Language Tools

Pero veamos alguna definición de DSL. En el artículo de Jorge:

DSL: Una bibliografía anotada

encontramos una definición:

A domain-specific language (DSL) is a small, usually declarative, language that offers expressive power focused on a particular problem domain. In many cases, DSL programs are translated to calls to a common subroutine library and the DSL can be viewed as a means to hide the details of that library

Por lo menos es un lenguaje declarativo, dedicado a un dominio en particular. En otro artículo de Jorge:

Cuál es el alcance real de los lenguajes de dominio (DSL)-

encontramos finalmente de dónde viene la idea de SQL como DSL, de una presentación de Microsoft:

Think of a DSL as a small, highly focused language for solving some clearly identifiable problem that an analyst, architect, developer, tester, or system administrator must wrestle with. Developers are already familiar with examples of DSLs; SQL for data manipulation, XSD for XML document structure definition, and so on.

Creo que es válido considerar al SQL como un lenguaje específico de dominio. Es bastante declarativo (le pedimos select * from employee, él “decide” luego cómo llevar a cabo esa operación), y está orientado a un dominio (recuperación y actualización de datos relacionales).

Jorge menciona también dos artículos clásicos, de Martin Fowler:

Languages Workbenches- the killer-app for Domain Specific Languages-

Languages Workbenches and Model Driven Architecture

que “debe ser leidos”.

Habria tanto para comentar, por ahora suficiente por hoy. Más adelante comentaré sobre MDA, MDD, otros generadores de código (sí, hay vida más allá del AjGenesis…;-), y algún proyecto como AndroMDA.

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com/

This entry was posted in 1389, 2643. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>