Para além do formalismo lógico

Vamos agora enriquecer a linguagem, construindo certos predicados que, tal como o corte, têm uma semântica operacional que ultrapassa o formalismo da lógica. Introduzimos um novo símbolo de predicado de aridade um, denotado por call. Tal como o corte, trata-se de um predicado pré-definido, isto é, que pode apenas figurar no corpo de uma cláusula ou num alvo-questão. Consideremos um átomo da forma call(A) onde A pode ser uma variável ou um átomo. No decorrer do percurso-construção da árvore de procura, quando o átomo escolhido for call(A), A deve estar instanciado por um átomo (senão erro). Então tudo se passa como se o programa comportasse (nessa etapa apenas) a cláusula

         call(A) :- A.

Na terminologia procedimental, call(A) é equivalente à chamada do procedimento A e tem, por conseguinte, o efeito de tentar construir uma árvore de prova tendo por raíz uma instância de A. Vamos ver de seguida alguns exemplos de utilização do corte e do call.




(c) Delfim F. Marado Torres
1999-04-13