Bienvenidos sean a este post, hoy les traigo un resumen sobre esta tecnica.
La metaprogramacion es una tecnica que posibilita a los programas tener la habilidad de tratar otros programas como sus datos. Esto hace que un programa puede ser diseñado para leer, generar, analizar, o transformar otros programas, e inclusive modificarse asi mismo mientras esta corriendo. Por ejemplo, el compilador trabaja con metaprogramacion porque toma el texto de un programa de un lenguaje y lo convierte en un programa de codigo maquina para que pueda ser interpretado por el ordenador.
En C++ la metaprogramacion de templates se la denomina como TMP (por sus sigla en ingles) y esto es la creacion de metaprogramas de C++ mediante templates. Este posee dos componentes: un template debe ser definido, y un template definido debe ser instanciado. A TMP se lo denomina como Turing-completo. Pero que significa esto? Que posee la capacidad de poder calcular cualquier cosa que sea computable, al menos en principio. Otro detalle que debemos tener en cuenta, es que usaremos recursion en lugar de iteracion para procesar los elementos de un conjunto. Esto es asi debido a que las variables son inmutables en TMP. Pero por que debemos usar TMP? La razon principal es que optimizan la ejecucion de nuestros programas. Pero nada en la vida es gratis, ya que tendremos mayores tiempos de compilacion asi como tambien archivos mas grandes. Tambien no podremos usarlo con cualquier codigo porque trabaja cuando trabajamos con algo que se mantenga constante durante la compilacion. Algunos ejemplos pueden ser:
- Encontrar todos los numeros que son menores a una constante de valor entero
- El factorial de una constante de valor entero
- Desenrollar un número constante de bucles o iteraciones
Desde un punto de vista practico, TMP nos da la posibilidad de poder solucionar problemas en las siguientes tres etapas:
- Computacion en la compilacion
- Optimizacion en la compilacion
- Polimorfismo estatico
La ultima etapa es la accion de convertir un polimorfismo dinamico en uno estatico, lo cual nos da la posibilidad de poder evitar la busqueda en tablas virtuales durante la ejecucion. En los proximos posts comentare mas en detalle cada una de las etapas anteriores.
Nota:
A medida que suba los posts los ire vinculando en el listado anterior.
En resumen, hoy hemos visto a TMP, metaprogramacion de templates, que es, para que sirve, algunas descripciones y condiciones que debemos respetar, y en los proximos posts veremos cada tema especificamente. Espero les haya resultado de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donatión
It’s for site maintenance, thanks!
$1.50
