ExpertCoder es un conjunto de herramientas para escribir generadores
de código basados en sistemas expertos que corre bajo la plataforma .NET.
No es un generador de generadores de código,
sino un conjunto de librerías que sirven para escribir generadores.
La forma tradicional más utilizada de escribir generadores de código es simplemente
escribir un programa con una serie de comandos del estilo "print".
El problema de este enfoque es que resulta muy difícil, aún para el
propio autor del generador, realizar modificaciones al diseño del código
generado debido a que este no es similar al código del generador.
Existen otras alternativas más avanzadas, como por ejemplo utilizar plantillas XSLT
para transformar documentos XML en código fuente; con estas alternativas se gana
en claridad, ya que el código del generador (la plantilla) se parece mucho al código
generado; sin embargo exponen sus desventajas a la hora de agregarle inteligencia
al generador, ya que el conjunto de herramientas y librerías accesibles desde una
plantilla es bastante reducido.
El propósito de este proyecto es construir un conjunto de herramientas
que provean al desarrollador de generadores de código lo mejor de ambos mundos:
- La claridad que aporta el uso de plantillas para la generación de código.
- La potencia de la plataforma .NET, junto a su enorme librería de clases,
brinda un gran poder de expresión al desarrollador.
Adicionalmente, al estar basado en los principios de los sistemas expertos, los generadores
resultantes son fácilmente extensibles, modulares y su estructura es más
declarativa que imperativa.
|