Prolog (delinglésProgramming inLogic), ye un llinguaxe lóxicu conocíu d'abondo nel área de la investigación n'Intelixencia Artificial.
Prolog ye un llinguaxe diferiente a los más conocíos, tanto de losimperativos comoFortran,Pascal,C etc, como de los funcionales comoLisp.
En tolos nomaos, les instrucciones execútense nun orden secuencial, esto ye, una tres otra y nel mesmu orden nel que tán escribayaes, condición que camudarase cuando se atope una instrucción de control (un llazu, una instrucción condicional o una tresferencia).
En Prolog, les coses son distintes: el orden de execución de les instrucciones nun tien na que ver col orden en que foron escribayaes. Tampocu hai instrucciones de control al usu. Pa trabayar nesti llinguaxe, un programaor tien que avezase a cavilgar d'un modu perdiferente al que ye emplegau nos llinguaxes clásicos.
Les instrucciones de Prolog llámense "regles ocláusules de Horn" y puen representase así: "Facer esto nel casu en que se cumplan tales o cuales condiciones". Una instrucción executarase automáticamente en cualesquiera momentu nel que se cumplan les condiciones especificaes. Amás de les regles, defínense tamién "fechos" nos que s'apliacrán les regles.
Ye dicir, en Prolog, un programa consiste nuna descripción lóxica d'una teoría y la computación ye la deducción de la teoría pa una consulta dada.
%%%% declaraciones%%paide('xuan','maria').% xuan ye'l pai de mariapaide('pablo','xuan').% pablo ya'l pai de xuanpaide('pablo','marcela').paide('carlos','debora').% A ye fiu de B si B ye pai de Afiude(A,B):-paide(B,A).% A ye güelu de B si A ye pai de C y C ye pai de Bguelude(A,B):-paide(A,C),paide(C,B).% A y B son hermanos si el pai de A ye tamién el pai de B y si A y B nun son el mesmuhermanude(A,B):-paide(C,A),paide(C,B),A<>B.% A y B son familiares si A ye pai de B o A ye fiu de B o A ye hermanu de Bfamiliarde(A,B):-paide(A,B);fiude(A,B);hermanude(A,B).%%%% consultes%%% xuan ye hermanu de marcela??-hermanude('xuan','marcela').yes% carlos ye hermanu de xuan??-hermanude('carlos','xuan').no% pablo ye güelu de maria??-guelude('pablo','maria').yes% maria ye güela de pablo??-guelude('maria','pablo').no