martes, mayo 09, 2006

metaprogramacion con macros en c

Una forma de metaprogramacion es la creacion de macros para cambiar el codigo fuente y crear nuevas funcionalidades. Esta caracteristica puede ser catalogada como programacion generativa o metaprogramacion textual. Ha sido utilizada desde los principios de C, definida como el lenguaje de macros que este utiliza.

El lenguaje de macros utilizado por c, es bastante rudimentario y no permite cambios estructurales dentro del lenguaje, por lo tanto no es muy optima para la utilizacion dentro del campo de la metaprogramacion.

Otra aproximacion es utilizar otro lenguaje de macros mas poderoso como el m4, el cual es compatible computacionalmente con el modelo de turing, pero este lenguaje no puede entrar mucho dentro de las caracteristicas del lenguaje c, por lo tanto es utilizado especialmente en el paso de la creacion de la configuracion del codigo fuente, pero no para la modificacion del comportamiento del codigo como tal.

Otra interesante aproximacion es eXTensible C, xtc, el cual permite una modificacion de la estructura del texto en c como tal y puede reconocer las caracteristicas internas del lenguaje, permitiendo asi una mejor aproximacion al paradigma de metaprogramacion en un lenguaje como c.

Esta aproximacion maneja 2 problemas fundamentales, el primero es la perdida de elementos de optimizacion que se pueden utilizar en los codigos generados debido a la independencia de la herramienta con el compilador, la segunda es la separacion del codigo de extension con el codigo de c, lo que limita al lenguaje c como tal la interaccion con el lenguaje de alto nivel.

No hay comentarios.: