Programación generativa
Montero Posadas Giovanny David
Montero Posadas Giovanny David
http://msdn.microsoft.com
Partiremos
de la definición de la programación generativa.
Definición:
Transforma representaciones de alto nivel de un programa a
Código
de “bajo” nivel.
El
objetivo de la programación generativa es sustituir búsqueda manual, la
adaptación y montaje de componentes con la generación automática de los
componentes necesarios que se demanda. Además de aumentar la
productividad, la calidad y el tiempo de salida al mercado de un software
gracias a la implementación de ambos componentes estándar y automatización de
la producción. Un cambio de paradigma importante implicado aquí es
construir sistemas de software de componentes estándar en lugar de
"reinventar la rueda" cada vez. Es necesario pensar en términos
de familias de sistemas en lugar de los sistemas individuales. Ingeniería
de software generativo y basado en componentes trata de integrar los enfoques
de ingeniería de dominio, los enfoques basados en componentes y enfoques
generativos.
La necesidad de una técnica para generar automáticamente
el código para evitar el trabajo esclavo de escribir y ajustar repetidamente de
los programador ha sido una tarea que siempre ha causado gran conflicto.
La programación generativa es una técnica que se ocupa de
este problema. Utilizando técnicas de programación generativa, puede
resolver problemas de ingeniería de software en las familias, en lugar de individualmente,
ahorrando tiempo y esfuerzo de codificación.
El término fue acuñado en el
libro de programación generativa por Krzysztof Czarnecki y Ulrich
Eisenecker (Addison-Wesley, 2000). Se refiere a un sistema de programación
que se centra en la resolución de problemas de ingeniería de software en
familias en lugar de uno a la vez. Como un simple ejemplo, una matriz de
enteros es una solución específica a un problema específico, pero la biblioteca
(STL) plantilla vector plantilla estándar está pensado para hacer frente a toda
la familia de los problemas resueltos por las matrices. En concreto, la
plantilla de vector es un generador, ya que describe el modelo de código del
compilador de generar. De hecho, la programación genérica, según lo dispuesto
en C + + a través de plantillas, es una forma primitiva de programación
generativa. Te encontrarás con otras formas más adelante en este artículo. (microsoft,
2013)
Conclusión:
Muy pocas veces
escuchamos hablar de este término,”programación generativa” pero es algo común
en la programación ya que se utiliza
todo el día, todos
los días. Usted la está utilizando cuando se emplean macros de lenguaje C para
producir C código, cuando usted alimenta IDL para el compilador MIDL para generar
código proxy-stub, cuando se ejecuta un asistente o una instancia de una
plantilla, y cuando se utiliza # import para generar esos chiflados +
envoltorios C + alrededor de los interfaces COM. Es decir en todo momento
la programación generativa nos ha venido a ahorrar tiempo y esfuerzos.