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 programEste 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.
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.
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
jose flores: estás enfermo mentalmente, hacete tratar por el personal activo del hospital psiquiatrico más cercano a tú posición actúal.