DSL. Domain Specific Languaje.

image

Qué son exactamente los DSL y qué posibilidades nos ofrecen?

 

En su definición más generalista, un DSL [Domain-Specific Programming Languaje] o "Lenguaje de Programación de Dominio Específico" es un lenguaje diseñado para realizar tareas específicas para un dominio concreto; es decir, a diferencia de un lenguaje de uso general, como C# o VB, un DSL permite abstraerse a una tipo de problema concreto, como puede ser, ejecutar procedimientos almacenados.

 

Si lo que queremos es ejecutar procedimientos almacenados, un lenguaje generalista como VB, C o C#, permitiría realizarlo sin problemas, pero un lenguaje diseñado específicamente para esta actividad, debería hacer el trabajo más fácil. Un DSL, por ser un lenguaje específico, dejaría de lado las funciones que no son necesarias y se centraría sólo en lo importante para realizar dicha actividad.

 

  image

Un DSL debe permitir definir las entidades del dominio, que serían las piezas del puzle con las que el programador especificará los detalles concretos del problema.

 

Un DSL para ejecutar procedimientos almacenados podrían tener los siguientes elementos de dominio: Base de Datos, Procedimiento Almacenado, Esquema, Paquete, Parámetro, Cursor de Salida, Campo, etc., etc..

 

El lenguaje nos debería permitir definir las propiedades y la interrelación entre estos elementos de dominio, y con esa información, permitir realizar la operación deseada.

 

 

image

Un DSL no tiene porqué ser un lenguaje de programación escrito, que haya que teclear. Puede ser gráfico, permitiendo definir las relaciones entre sus elementos mediante un lenguaje Visual.

 

 

Ejemplos de Lenguajes Específicos pueden ser: Logo para niños, Verilog y VHSIC, R y S para estadísticas, Mata para programación matricial, Mathematica y Maxima para matemáticas, fórmulas de hojas de cálculo y macros, SQL para consultas a bases de datos relacionales, Yacc para crear parseadores, expresiones regulares para crear análisis léxico, Generic Eclipse Modeling System y DGML de Visual Studio para crear lenguajes con el objetivo de diagramar, Csound un lenguaje para síntesis digital, y los lenguajes de entrada de GraphViz y GrGen, paquetes de software usados para graficar y reescribir gráficas. También podrían serlo Alice, un lenguaje para la programación de mundos virtuales y ANTLR, que permite definir compiladores.

 

 

image

 

Pasando un poco de las definiciones más generalistas, vamos a ver qué son las DSL dentro de Visual Studio.

 
Dentro del SDK de Visual Studio (a partir de la versión 2005), se encuentran las DSL Tools, que permiten la definición de los elementos de la DSL, la creación de diseñadores gráficos y la generación automática de código usando una notación bastante sencilla, basada en plantillas, que pueden ser escritas en C# o en VB.net.

Está bien, parece interesante, pero cómo se hace esto?

El ejemplo en la siguiente entrega 😉

 

 

 

Fuentes:

http://msdn.microsoft.com/en-us/library/bb126259.aspx

http://msdn.microsoft.com/en-us/vstudio/cc677260.aspx

http://en.wikipedia.org/wiki/Domain-specific_language

http://cuartageneracion.blogspot.com/2005/06/microsoft-y-mda-mdd-domain-specific.html

2 comentarios en “DSL. Domain Specific Languaje.”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *