Qué es la metaprogramación

Enlaces patrocinados:

La metaprogramación de la forma más sencilla se puede definir cómo: “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, lenguaje máquina o ensamblador.

Pero la metaprogramación tiene otras aplicaciones más potentes, aunque algunos creen que sólo es útil para los programadores flojos que no quieren escribir programas, es cierto te puede ahorrar mucho tiempo, un ejemplo sencillo de metaprogramación que encontré en la wikipedia es el siguiente:

#!/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.

Otro ejemplo interesante es LibSH es un ejemplo de metaprogramación. Escribes shaders en C++, y un motor basado en plantillas y sobrecarga de operadores traduce (en tiempo de ejecución) ese código a un shader para la tarjeta de vídeo.

Enlaces patrocinados:
Enlaces patrocinados:
Enlaces patrocinados:

3 Comentarios (Agrega el tuyo)

  1. Comentado 2 de Diciembre de 2007 a las 8:10 PM | Permalink | Responder ↓

    no entendi muy bien la idea del segundo ejemplo, se ke se puede usar para hacer compiladores. creo ke necesito meterme mas en este tema. gracias por prenderme el foco :P.

  2. Comentado 1 de Enero de 2008 a las 4:37 PM | Permalink | Responder ↓

    tu segundo ejemplo solo se usa al teclear y traducir o a caso es lo que busco , como en la tv que traduce programas al mismo tiempo que emiten el programa , veras quiero saber si existe un programa que me pueda traducir una pelicul para convertirla a dvd , tengo acceso a peliculas en ingles y quiero agregar el subtitulo mediante un programa que genere el subtitulo . no como el subtitule workshop , ue me permite traducir yo mismo la pelicula , si sabes de algo agradeceria el comentario

  3. jose flores
    Comentado 7 de Abril de 2009 a las 8:59 AM | Permalink | Responder ↓

    jose flores: estás enfermo mentalmente, hacete tratar por el personal activo del hospital psiquiatrico más cercano a tú posición actúal.

Escribe un Comentario

Su correo nunca será publicado ni compartido. Los campos requeridos están marcados *

*
*

Comment moderation is enabled. Your comment may take some time to appear.

Estudios Kurin - Técnicas de video y fotografía