Enciclopedia.com

Haz Enciclopedia.com tu página de inicio y aprende algo nuevo cada día

Prolog

Prolog, proveniente del inglés Programming in Logic, es un lenguaje lógico bastante popular en el medio de investigación en Inteligencia Artificial.

Prolog es un lenguaje muy diferente, tanto de los imperativos como Fortran, Pascal, C etc, como de los funcionales como Lisp.

En todos los mencionados, las instrucciones se ejecutan normalmente en orden secuencial, es decir, una a continuación de otra, en el mismo orden en que están escritas, que sólo varía cuando se alcanza una instrucción de control (un bucle, una instrucción condicional o una transferencia).

En Prolog, las cosas son distintas: el orden de ejecución de las instrucciones no tiene nada que ver con el orden en que fueron escritas. Tampoco hay instrucciones de control propiamente dichas. Para trabajar con este lenguaje, un programador debe acostumbrarse a pensar de una manera muy diferente a la que se utiliza en los lenguajes clásicos.

Las instrucciones de Prolog se llaman "reglas o cláusulas de Horn" y esencialmente pueden representarse así: "Hacer esto si se cumplen tales o cuales condiciones". Una instrucción se ejecutará automáticamente en cualquier momento en que se cumplan las condiciones especificadas. Además de las reglas, también se definen "factos" en la cual se aplicarán las reglas.

Es decir, en Prolog, un programa consiste de una descripción lógica de una teoría y la computación es la deducción de la teoría para una consulta dada.

Table of contents
1 Ejemplo de Código Prolog
2 Véase también
3 Enlaces relacionados

Ejemplo de Código Prolog

%%
%% declaraciones
%%

padrede('juan', 'maria'). % juan es padre de maria padrede('pablo', 'juan'). % pablo es padre de juan padrede('pablo', 'marcela'). padrede('carlos', 'debora').

% A es hijo de B si B es padre de A hijode(A,B) :- padrede(B,A).

% A es abuelo de B si A es padre de C y C es padre B abuelode(A,B) :- padrede(A,C), padrede(C, B).

% A y B son hermanos si el padre de A es tambien el padre de B y si A y B no son lo mismo hermanode(A,B) :- padrede(C,A) , padrede(C,B), A <> B.

% A y B son familiares si A es padre de B o A es hijo de B o A es hermano de B familiarde(A,B) :- padrede(A,B) ; hijode(A,B) ; hermanode(A,B).

%% %% consultas %%

% juan es hermano de marcela? ?- hermanode('juan', 'marcela'). yes

% carlos es hermano de juan? ?- hermanode('carlos', 'juan'). no

% pablo es abuelo de maria? ?- abuelode('pablo', 'maria'). yes

% maria es abuelo de pablo? ?- abuelode('maria', 'pablo'). no

Véase también


Enlaces relacionados


Informática | Programación

  1. REDIRECT






This article is from Wikipedia.The text is available under the terms of the GNUs Free Documentation License.