Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El lenguaje Prolog
Descripción del lenguaje
El lenguaje Prolog es un lenguaje lógico:
• Un nombre es una secuencia o cadena alfanumérica que comienza con una letra minúscula.
NOM ::= MIN (DIG | Min | MAY)*
• Un número es una secuencia de dígitos
NUM ::= DIG (DIG)*
• Una variable es una secuencia alfanumérica que comienza con una letra mayúscula.
VAR ::= MAY (DIG | Min | MAY)*
Sea DIG = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Sea MAY = A | B | C | D | E | F | G | H | I | K | L | M | N
|O| P|Q|R|S|T|U|V|W|X| Y|Z
Sea MIN = a | b | c | d | e | f | g | h | i | k | l | m | n
|o| p|q|r|s|t|u|v|w|x| y|z
Gramática
Un programa es ena secuencia de hechos
y reglas seguidas de una consulta
• P HRs C
• HRs HRs HR Un hecho es un funtor seguido por un punto (.).
• HRs HR
• HR H Una regla es un funtor seguido por el
operador ":-" seguido por una
• HR R secuencia de uno o más funtores
• H F. separados por comas y seguidos por un
punto.
• R F :- Fs .
• C ?- Fs .
Una consulta es el operador "?-"
• Fs F seguido por una secuencia de
• Fs Fs , F uno o más funtores separados
por comas y terminando en un
punto.
Gramática
• F nom
• F nom(As)
• AF
• A num
• A var
• A L Un argumento es un funtor, un número , una
variable o una lista
• As A
• As As , A
Un funtor es un nombre que puede o no estar
seguido de una secuencia de argumentos
separados por comas entre paréntesis.
Gramática
• [ ] es una lista
• Si a1, ..., an son argumentos y L es una lista ENTONCES LAS
SIGUIENTES TAMBIÉN SON LISTAS:
• [ a1, ... , an | L]
• [ a1, ... , an ]
• L []
• L [As]
• L [As | A]