Prolog

Las primeras versiones del lenguaje diferían, en sus diferentes implementaciones, en muchos aspectos de sus sintaxis, empleándose mayormente como forma normalizada el dialecto propuesto por la Universidad de Edimburgo,[6]​ hasta que en 1995 se estableció un estándar ISO (ISO/IEC 13211-1), llamado ISO-Prolog.

Prolog se enmarca en el paradigma de los lenguajes lógicos y declarativos, lo que lo diferencia enormemente de otros lenguajes más populares tales como Fortran, Pascal, C o Java.

Prolog selecciona el primer punto de elección y sigue ejecutando el programa hasta determinar si el objetivo es verdadero o falso.

Conjunciones y disyunciones pueden solo aparecer en el cuerpo, no en la cabeza de la regla.

En realidad la disyunción no es un operador básico o predefinido, sino que está meta-programado así: Las cláusulas sin cuerpo (es decir, antecedente) son llamados hechos porque siempre son ciertos.

Un ejemplo de un hecho es: que es equivalente a la regla: El predicado predefinido true/0 siempre es verdad.

Debido a la naturaleza relacional de muchos predicados, pueden ser usados revertidos sus argumentos.

Similarmente, append/3 puede ser usado también para unir o anexar dos listas: append([a,b], [c,d], X), así como para dividir una lista en dos partes: append(X, Y, [a,b,c,d]).

Por esta razón, una biblioteca relativamente pequeña de predicados basta para muchos programas en Prolog.

Estos predicados no tienen un significado relacional y son solo útiles por los efectos laterales que exhiben en el sistema.

Por ejemplo, el predicado write/1 muestra un término en la pantalla, pero no tiene relevancia su valor de verdad o falsedad.