Curso avanzado de Prolog

Este curso avanzado de Prolog esta dedicado a las capacidades de orden superior del lenguaje. Se trata de un conjunto de funcionalidades generalmente desconocidas (no slo en Prolog, sino tambin en otros lenguajes) pero que dotan de una enorme expresividad y potencia a los programas.

.Orden Superior

El concepto de orden superior es tan difcil de entender como de explicar. Podriamos definirlo como la capacidad de un lenguaje para manejar su propio cdigo como una estructura de datos ms. El orden superior existe en muchos lenguajes pero, debido a que se implementa de formas distintas, no se suele usar esta denominacin. Algunos ejemplos:

  • En el lenguaje C: los punteros a funciones. Estos permiten pasar funciones como argumentos.
  • En Java y otros lenguajes OO: las referencias a instancias. Permiten ejecutar cdigo distinto dependiendo de la referencia utilizada.

Un aspecto particular del orden superior es la capacidad de pasar un procedimiento o funcin como argumento a otro procedimiento o funcin. Esta es la caracterstica ms utilizada.

.Metaprogramacin

La metaprogramacin es una implementacin posible del orden superior tremendamente verstil. Consiste en la posibilidad de que el cdigo se modifique a s mismo. Para entender la diferencia entre metaprogramacin y orden superior pondremos un ejemplo:

  • Escribimos una funcin, y la pasamos como argumento a otra funcin. sta ltima la ejecuta sin saber exactamente qu est ejecutando. Esto es una caracterstica de orden superior.
  • Tomamos una cadena de texto donde almacenamos el nombre de una funcin, por ejemplo, tabla_logaritmo. Por otra parte construimos una lista con dos elementos, los nmeros 3 y 5, por ejemplo. Ahora juntamos la lista con la cadena de texto y generamos una llamada vlida a la funcin tabla_logaritmo(3,5). La llamada se ejecuta. Esto es metaprogramacin.
Prolog cuenta con esta caracterstica.

Copyright 2002

Angel Fernndez Pineda.

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
SIGUIENTE ARTÍCULO

HAY 1 COMENTARIOS
  • Anónimo dijo:

    SUPER!

Conéctate o Regístrate para dejar tu comentario.