binary option daily youtube game
free charts for binary options beginners
best binary options auto tra
handpicked best binary options signal providers
binary option market news 724
price 5 dollar binary options
norbert r binary options strategies of war
binary options 101 home study course uk tax
binary options indicator that works timing
zulutrade 60 second binary options platforms
binary option bani index auto
is investing in binary options a good idea account
win binary options trading app
low cost home business
double binary option signals twitter
how to win in binary option does it work robot 1 0
best monthly investment options
how to win in binary options quotes zero risk strategy pdf
auto 1 minute binary options ea
get rich binary options bullet mt4
ig binary options trading is it worth review
best binary options trading fxcm uk
mobile binary option brokers expert advisor
trade exchange traded options
no risk binary options auto trader review
binary option broker vergleich bot 2
best binary options system 0ne uk
reputable us binary options brokers on mt4
what is binary option scalping philippines
truth about binary options trading kings
redwood binary options exposed
binary option accepting paypal no deposit
binary signals australia review option exchange
60 sec binary options demo
60 seconds binary options scam bullet mq4
5 minute binary options excel trading strategy
binary options basics apple
how to win in binary option usa alerts
best online way to make money
binary option l g trading strategy
15 minutes binary options strategy jobs
how to win in binary options trading system 593
one click binary options zone
binary options brokers in singapore trading journal
binary option trading or gambling robot 1
247 binary options liberty reserve no deposit bonus
binary options buddy download investopedia
home business with embroidery
binary trade guide
is investing in binary options a good idea brokers us
what is a the best binary options trading platform
binary option methods programming scalper
binary option technical analysis software judi
is binary option m5 charts legal in us
can you get rich trading binary option halal
should you learn binary options
how to beat 60 second binary options regulated in us
binary option in us live charts
us taxes on binary options unmasked
binary option brokers paypal strategy mt4
how to practice options trading
binary jackets
regulated binary options trader broker in us
synthetic free indicator for binary option
binary options apple m5 charts
ig binary options review
binary options low minimum deposit
binary options auto trading programs for usa
binary option trading alerts new zealand
binary option no deposit bonus december 2015 minimum
chat and make money online
binary option comment legal in us
forums on binary options vs betting
are binary option like gambling system 09
uk the binary options success review brokers
us binary option broker autotrader
binary options broker comparison comment
binary option broker with demo account contest
difference between spread betting and binary options
binary options are they leg
binary options no deposit bonus special winning formula
binary option box kings
how to start a home based catering business in ontario
free binary options signal with 90 accuracy
new home business
hundreds daily with binary option tools
binary option bot reviews strategies i
top binary option systems learning
buy binary tradingaccountbest price shopping
practice binary option trading matlab
home and business 2014 trial product key
binary options free alert season 3 vs penny stocks
1 trade binary options free broker
top 5 binary option trading signals and best signal services
binary options free download nadex review
binary options trader review salary
binary options signals xposed
binary option signal service reviews strategies a
binary options signals test trading new zealand
binary options trade video api
best robot for binary option trading
study binary option signal software
binary option live graphs 5 min trades
binary options trading it m reviewbest price
best signal provider for binary option hybrid
online trading platform india
binary option broker with free demo account regulation
how to withdraw money from binary options coaching
binary option vic scam robot results
binary option software robot 2015
binary tree american option
how to win on binary options interactive brokers
best binary option for beginners with paypal
anti martingale binary option signal
winning in binary option crash
setting up a business in your own home
top 5 binary options 400
how to make tons of money in gta v online
metatrader 4 binary options methods job evaluation indicators
weekly option trading
binary options basics 101 review
tips to consider when choosing binary options brokers
microsoft office home and business 2014 free upgrade to 2014
online trading courses in kerala
easy binary option signals ranking
binary option vs vanilla options box
binary option pro signals facebook real
make money on forex trading online
auto binary options system 600 ea
option trading live chart
home based business for sale dallas tx
how to win in binary options forex metatrader
u s binary option buddy
binary option profit pipeline torrent system 600
tax on uk binary options brokers
german banker secret binary options trading strategy
nairobi stock exchange online trading
us regulated binary options broker 365
binary option live system 32
user adoption strategies
binary options trading signals 20
make money online uk
binary option system administration decoded
binary option strategies of chess killer review
binary options risks brokers in uk
xtb how to trade 1 minute binary option
easiest way to learn options trading
binary options trading platform wiki zero risk strategy pdf
automated binary options trading signals demo
the longawaited gamified cfd and binary options trading platform

Los lenguajes específicos de dominio

diccionarioCon el surgimiento de la metodología de Modelado Específico de Dominio (Domain-specific modelling) para el desarrollo de sistemas, cada vez se utiliza más el término de Lenguaje Específico de Dominio (o DSL).

En este artículo veremos exactamente qué es un Lenguaje Específico de Dominio, cuál es su uso, que ejemplos existen que usamos a diario, y las ventajas y desventajas de su aplicación.

¿Qué es un DSL?

En el desarrollo de software, un lenguajes específico de dominio (domain-specific language - DSL) es un lenguaje de programación dedicado a un problema de dominio en particular, o una técnica de representación o resolución de problemas específica. Este concepto no es nuevo, ya que desde siempre existieron lenguajes de programación de propósito específico.

Lo opuesto a un lenguaje específico de dominio son:

  • los lenguajes de programación de propósito general, como C o Java.
  • los lenguajes de modelado de propósito general, como UML.

Como ejemplos de DSL podemos mencionar a las fórmulas y macros de las planillas de cálculo, las expresiones regulares de ciertas utilidades, Csound (un lenguaje para crear archivos de audio), y más.

Crear un DSL (con el software que lo soporte) puede valer la pena si el lenguaje permite expresar tipos de problemas y soluciones particulares que los lenguajes pre-existentes no pueden modelar tan fácilmente.

La creación de un DSL

Los DSL se crean específicamente para resolver problemas dentro de un dominio en particular, y no están pensandos para resolver problemas fuera de este dominio (aunque pueda ser técnicamente posible). En cambio, los lenguajes de propósito general se crean para resolver probelmas en muchos dominios. Un dominio también puede ser un área de negocio específica. Algunos ejemplos de áreas de negocio son:

  • lenguajes específicos de dominio para políticas de seguros de vida desarrollado internamente en la empresa.
  • lenguajes específicos de dominio para simulacros de combate.
  • lenguajes específicos de dominio para cálculos de salarios.
  • lenguajes específicos de dominio para facturación.

Implementaciones

Los DSL son lenguajes con objetivos muy específicos, tanto en su diseño como en su implementación. Un DSL puede ser tanto un lenguajes de diagramación visual (como el creado por Generic Eclipse Modeling System), o lenguajes textuales. Por ejemplo, la utilidad de línea de comandos grep tiene una sintáxis de expresiones regulares para buscar líneas de texto.

La línea que divide a los DSL y a los lenguajes de scripting es bastante borrosa, pero en general los DSL no tienen funciones de bajo nivel para acceder al sistema de archivos, ni control de interprocesos ni otras características que caracterizan a los lenguajes completos. Muchos DSL no se compilan a código ejecutable, sino a diferentes objetos: por ejemplo, GraphViz exporta a PostCript, GIF, JPEG, etc., Csound compila a archivos de audio, y el lenguaje POV compila hacia archivos gráficos.

El lenguaje SQL es un caso interesante: podría considerarse un DSL porque es específico para un dominio (en este caso, acceder a las bases de datos relacionales), y se suele utilizar dentro de otra aplicación; pero SQL tiene más palabras clave y funciones que muchos lenguajes de scripting, y se suele pensar en SQL como en un lenguaje completo (quizás por la enorme presencia de manipulación de bases de datos en los programas, y por la gran cantidad de experiencia que se necesita para ser experto en este lenguaje).

Para resumir, la siguiente analogía podría ser útil: un Lenguaje Muy Chiquito es como un cuchillo, el cual puede usarse en cientos de formas diferentes, desde cortar comida hasta talar árboles. Un Lenguaje Específico de Dominio es como un taladro eléctrico: es una herramienta poderosa que varios usos, pero dentro de un contexto específico, como ser hacer agujeros (aunque podría usarse también para mezclar pintura o quitar tornillos). Un Lenguaje de Propósito General es como un taller completo, con muchas herramientas para hacer varias tareas. Los DSL deben usarse cuando un programador que está trabajando en su taller se da cuenta que necesita un taladro mejor, y encuentra que ese DSL se ajusta perfectamente a su tarea.

¿Y porqué usar un DSL?

Existen riesgos y oportunidades al adoptar un DSL a nuestras aplicaciones. Un DSL bien diseñado va a lograr el balance apropiado entre ambas.

Los DSL tienen metas de diseño importantes que contrastan con aquellas de los lenguajes de propósito general:

  • los DLS tienen menos alcance.
  • los DSL son muchos más expresivos dentro de su dominio.

Ventajas de los DSL

  • Los DSL permiten expresar soluciones usando los términos y el nivel de abstracción apropiado para el dominio del problema. En consecuencia, los mismos expertos de dominio pueden comprender, validar, modificar y a menudo desarrollar programas en DSL.
  • Es código auto-documentado.
  • Los DSL mejoran la calidad, productividad, confianza, mantenibilidad, portabilidad y reusabilidad de las aplicaciones.
  • Los DSL permiten validaciones a nivel del dominio. Mientras las contrucciones del lenguaje estén correctas, cualquier sentencia escrita puede considerarse correcta.

Desventajas de los DSL

  • El costo de aprender un nuevo lenguaje vs. su aplicación limitada.
  • El costo de diseñar, implementar y mantener un DSL y las herramientas para trabajar con él.
  • Encontrar, establecer y mantener el alcance adecuado.
  • Dificultad para balancer las ventajas y desventajas entre las construcciones de los DSL y de los lenguajes de propósito general.
  • Potencial périda de eficiencia y rendimiento en comparación con el software escrito "a mano".

Leer más

Pueden leer más sobre los Lenguajes específicos de dominio en la Wikipedia.

Compartir

Deja tus comentarios

Post comment as a guest

0

El nuevo Dos Ideas.

Nuevo logo, nuevo buscador, nueva portada, podcast mensual... ¡y muchas novedades más!

Más novedades en Dos Ideas

Los Comentarios.

jamesbarber
University assignment is necessary for everyone, education is the key of success in every field of l...
Dans un autre côté asynchrone une signification légèrement différente. Elle se réfère à un système, ...
Productivité ne signifie pas faire plus Tag Heuer
¿Récompenses individuelles sur une équipe agile? Bell & Ross
Il est déconseillé de supprimer des données Hublot

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw