Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Tutoriales > Otros lenguajes > Prolog > Curso avanzado de Prolog
-Tutoriales

Curso avanzado de Prolog


Metaprogramación y orden superior

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 sólo en Prolog, sino también en otros lenguajes) pero que dotan de una enorme expresividad y potencia a los programas.

. Orden Superior

El concepto de orden superior es tan difícil de entender como de explicar. Podriamos definirlo como la capacidad de un lenguaje para manejar su propio código como una estructura de datos más. El orden superior existe en muchos lenguajes pero, debido a que se implementa de formas distintas, no se suele usar esta denominación. 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 código distinto dependiendo de la referencia utilizada.

Un aspecto particular del orden superior es la capacidad de pasar un procedimiento o función como argumento a otro procedimiento o función. Esta es la característica más utilizada.

. Metaprogramación

La metaprogramación es una implementación posible del orden superior tremendamente versátil. Consiste en la posibilidad de que el código se modifique a sí mismo. Para entender la diferencia entre metaprogramación y orden superior pondremos un ejemplo:

  • Escribimos una función, y la pasamos como argumento a otra función. Ésta última la ejecuta sin saber exactamente qué está ejecutando. Esto es una característica de orden superior.
  • Tomamos una cadena de texto donde almacenamos el nombre de una función, por ejemplo, tabla_logaritmo. Por otra parte construimos una lista con dos elementos, los números 3 y 5, por ejemplo. Ahora juntamos la lista con la cadena de texto y generamos una llamada válida a la función tabla_logaritmo(3,5). La llamada se ejecuta. Esto es metaprogramación.
Prolog cuenta con esta característica.

© Copyright 2002

Angel Fernández Pineda.

 
Patrocinados
 

Copyright © 1999-2010 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

diseño y desarrollo web por Color Vivo Internet. Un proyecto de los Hermanos Carrero