A.3.
Modelo procesal de Prolog
Dado un programa, el problema que tiene que resolver el procesador es el de
encontrar si la consulta es coherente o no con los hechos y las reglas, y, en su caso,
encontrar los valores de las variables contenidas en la consulta que la hacen
coherente.
Se describe a continuación, de manera muy general, el funcionamiento de un
procesador para el lenguaje Prolog, suponiendo:
- que la máquina convencional sigue el «modelo de von Neumann»
(hay muchas investigaciones en curso sobre arquitecturas con unidades de
procesamiento funcionando en paralelo para ejecutar más eficazmente los
programas lógicos, pero aquí supondremos que la máquina se atiene al modelo
más convencional),
- que el procesador del lenguaje es un intérprete (existen actualmente compiladores
muy eficientes), y
- que el procesador implementa un sistema deductivo con resolución y refutación y
la estrategia SLD (Apartado 4.9). En la práctica esto significa que los hechos y
las reglas se exploran «de arriba abajo»
en el orden en que se han escrito, y los predicados que forman el cuerpo de una
regla se exploran «de izquierda a derecha»
.
Hay un concepto central en el modelo, el de objetivo, y dos aspectos procesales
básicos: la unificación y el retroceso.
DIT-ETSIT-UPM