Prolog
| Estensión de ficheru |
.pl .pro .P |
|---|---|
| Versión inicial | 1972 |
| Tipu |
llinguaxe de programación, Llinguaxe de programación declarativu, deductive language (en) |
| Etiqueta de Stack Exchange | Stack Exchange |
Prolog (del inglés Programming in Logic), 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 los imperativos como Fortran, Pascal, C etc, como de los funcionales como Lisp.
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 o clá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.
Exemplu de códigu en Prolog
%%
%% declaraciones
%%
paide('xuan', 'maria'). % xuan ye'l pai de maria
paide('pablo', 'xuan'). % pablo ya'l pai de xuan
paide('pablo', 'marcela').
paide('carlos', 'debora').
% A ye fiu de B si B ye pai de A
fiude(A,B) :- paide(B,A).
% A ye güelu de B si A ye pai de C y C ye pai de B
guelude(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 mesmu
hermanude(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 B
familiarde(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
Ver tamién
Referencies
Enllaces esternos
- Web de prolog d'estudiantes arxentinos Archiváu 2004-12-06 en Wayback Machine
| Llinguaxes de programación |
|---|
| Ada | ALGOL | Awk | Basic| C | C++ | C# | Cobol | Delphi | Eiffel | Forth | Fortran | Haskell | Java | Lisp | Logo | Miranda | Modula-2 | Oberon | Ocaml | Pascal | PHP | Perl | Prolog | Python | Ruby | Smalltalk | Otros llinguaxes... |
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.