Qué es la metaprogramación

He encontrado un par de recursos que pueden ser útiles para comprender y avanzar en este tema. El primero es la Wikipedia (cómo no ;-)), que sirve bien para empezar a conocer de qué va el tema y que enlaza a este artículo de introducción a la metaprogramación (en inglés).

La metaprogramación podría definirse como “programar un programa que genere o modifique otros programas o a si mismos”. El ejemplo más común de la metaprogramación es un compilador que te permite convertir un programa escrito en un lenguaje de alto nivel en uno con lenguaje de bajo nivel o a lenguaje máquina.

La metaprogramación tiene aplicaciones muy potentes, que te pueden ahorrar mucho tiempo. Uun ejemplo sencillo de metaprogramación es el siguiente bash-script:

#!/bin/bash
# metaprogram
echo '#!/bin/bash' >program
for ((I=1; I<=992; I++)); do
  echo "echo $I" >>program
done
chmod +x program

Este script genera un nuevo programa que imprime por pantalla los números 1 a 992. Esto es sólo una muestra de cómo usar código para escribir más código, no la forma más eficiente de imprimir una lista de números. En cualquier caso, un buen programador puede escribir y ejecutar este metaprogama en apenas un par de minutos, y habrá generado exactamente 1000 líneas de código en esa cantidad de tiempo.


El otro recurso es Barrapunto, sitio del que ya he comentado que visito con mucha frecuencia y que tiene estos artículos interesantes sobre el tema de este post:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: