Area Code - My place . . . Myself . . .

9/29/2007

Programación Lógica

La programación lógica consiste en la aplicación de la lógica para el diseño de

lenguajes de programación.

La programación lógica comprende dos paradigmas de programación:

1 - La programación declarativa
2 - La programación funcional.

La programación declarativa gira en torno al concepto de predicado, o relación entre elementos. La programación funcional se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático.

El lenguaje de programación lógica por excelencia es Prolog, que cuenta con diversas variantes.

Prolog: proveniente del francés Programation et Logique, es un lenguaje de programación lógico e inter

pretado, bastante popular en el medio de investigación en Inteligencia Artificial.

Ejemplo de un árbol genealógico:




Codigo:

%La familia h4x0r

% oxc es el padre de redpoint

padre(redpoint,oxc).
padre(danger,oxc).
padre(oxc,dios).
padre(megabyte,dios).
padre(lastdragon,megabyte).
padre(strago,lastdragon).
padre(michoacano,redpoint).

% B es hermano de A

hermano(A,B) :-
padre(A,P),
padre(B,P),
A \== B.

% B es nieto de A

nieto(A,B) :-
padre(A,P),
padre(P,B).

% B es primo de A

primo(A,B) :-
padre(A,P),
padre(B,Q),
hermano(P,Q).

% B es tio de A

tio(A,B) :-
padre(A,P),
hermano(P,B).


Ejemplo de consultas: "B es hermano de A":

1 ?- hermano(A,B).

A = redpoint,
B = danger ;

A = danger,
B = redpoint ;

A = oxc,
B = megabyte ;

A = megabyte,
B = oxc ;

No

Tambien se puede consultar: "¿Es Danger hermano de RedPoint?"
de la siguiente manera:


2 ?- hermano(redpoint,danger).

Yes

Tambien se puede consultar "¿De quién es tio Megabyte?"
de la siguiente manera:

3 ?- tio(A,megabyte).

A = redpoint ;

A = danger ;

No

Bueno pues eso es todo por hoy, para probar este codigo se pueden
bajar el SWI Prolog.

Saludos.