option trading tamil
range options
option strategies for volatility
what is binary coded hexadecimal
option strategies when volatility is high
options trading strategy software
advantage of option trading
stock options at a private company
trading binary options strategies and tactics bloomberg financial download
trading forex vs options
employee stock option plan vesting period
where do options on futures trade
restricted stock units vs options
option one logo
cheapest online options brokers
how to be successful in binary options
what is a binary isomorphous phase diagram
free stock options spreadsheet
european binary option
stock market trading options
winning binary signals
options trading lot size
fx options london
what is binary parallel adder
what is binary integer variables
option strategies excel sheet
binary trading with franco
how to predict in binary options
protective put option investopedia
what is the binary value of 0
binary options 60 seconds trading
what should i do with my stock options
no1options
what is binary relation in math
binary options broker paypal
signaux option binaire gratuit
advantages of incentive stock options
fx options delta gamma
restricted stock options tax
binary fission 3 steps
live binary options charts
stock options journal
option market examples
stock options estate tax and financial planning 2009 edition
trading index options bittman
call option exit strategy
stock options sample
vb net option strict performance
best options strategy calculator
mysql replication binary log purge
what is the difference between digital and binary signal
live binary option signals
binary ladder digital to analog converter
currency options trading course
finance stock options
how to calculate stock options in excel
trading options part time
option trading on margin
royal de bank binary options
demo account for binary options trading
binary options trading daily
stock option sale cost basis
stock options sale capital gains
what is the binary number 10010
fx option calculator
binary options spx
stock options nse
vxx option trading strategies
lbinary withdrawal issues
mail options waterside trading estate
selling stock options in a private company
trade us options from australia
chicago board options exchange tours
is options trading difficult
head of fx options credit suisse
single stock options hkex
ir sobre stock options
888 binary options
100 free binary options
what is binary relation
stock option benefit ccpc
strategie option binaire forum
employee stock purchase plan vs stock options
has anyone made money from binary options
option trading levels td ameritrade
vb6 binary compatibility dll
what do you mean by option trading
employee stock options tax singapore
what are the disadvantages of binary options trading
reliable option trading tips
interactive brokers option assignment fee
binary option in chinese
hk stock options trading
butterfly option strategy wiki
options trading journal spreadsheet download
option binaire avec bonus sans depot
mlm binary calculator online
barrier option pricing matlab
strike price call option formula
futures and options trading guide
browning x bolt stock options
binary fission or mitosis
executive stock options advantages
options trader iq
why fx options
what is binary fission in biology
what is binary compound chemistry
100 return options trading strategy
binary put option payoff
what is binarychecksum in sql server
binary options trading eztrader
optionshouse tax import
stocks futures and options magazine free
employee stock options investopedia
trusted binary options websites
does options trading work
home delivery options london
price of call option binomial model
trade sugar options
option binaire pronostic
what is binary search tree in c
google new employee stock option
option trading course perth
learn future and option trading
binary options trading in america
consistent binary options
live trading webinar
good option trades
stock options effect on balance sheet
do you get taxed when you exercise stock options
how does binary trading work
lease option tips strategies on reiclub com
akamai stock options
top option option binaire
binary options trading affiliate program
what is binary excel workbook
binary options trading reviews
top option market makers
binary option faq
executive employment agreement stock options
nse future option market watch
binary trader charts
options brokers review
index options trading tips
when is best time to exercise nonqualified stock options
employee stock option hong kong
currency binary options trading
30 minute binary options strategy
free binary options software download
fx options market value
binary options trading loss
licensed binary options trading
option trade rules
what is the binary molecular compound for n2o3
option binaire autoris amf
knowledge of options trading
anyoption demo
fx options blog
binary options free charts
5 minute binary options trading strategy
exchange traded options in india
how much money do i need to trade options
type 3 binary compounds worksheet
binary options cme
option 60 pxe
best binary option broker in india
call put option trading strategies
using options to trade earnings
toronto maple leafs trade options
trading software binary options
trinomial option pricing model wiki
employee stock option success stories
what is the binary conversion of the hexadecimal number cb
what day do stock options expire
option binaire 30 minutes
making money using stock options
expert stock option picks
fx options expiry
script mlm binary 2xn
imposition plus value cession stock option
emta 1998 fx and currency option definitions
options market terminology
fair binary options review
qcom stock options
ichimoku kinko hyo binary options
options trading book reviews
best long term option strategy
binary logistic regression analysis spss

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
  • No se han encontrado comentarios

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.

clinica del sueño
Muy buen post. La empatía es inherente al ser humano, solo hay que reforzarla.

clinica del sueño
parul verma
Hello gentleman I am parul verma independent Mumbai escort in Mumbai city. I am hot and saxy indepe...
Richard L. Ellis
Eye Shadow Sticks, Creams, Gels, Pencils, Pressed Powders? Whats the Difference? best essay and essa...
Akash Singh
We Provides High-quality Packing and Moving Facilities That Have Given Extreme Satisfaction Visit:-
...
Akash Singh
We Provides High-quality Packing and Moving Facilities That Have Given Extreme Satisfaction Visit:-
...

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