Extras din referat
Una din principalele idei ale programarii logice este aceea ca un algoritm este constituit din doua elemente disjuncte: logica si control. Componenta logica corespunde definitiei problemei ce trebuie solutionata, in timp ce componenta control stabileste cum poate fi obtinuta solutia. Un programator trebuie sa descrie numai componenta logica a unui algoritm, lasand controlul executarii sa fie exercitat de sistemul de programare logica utilizat. Cu alte cuvinte, sarcina programatorului este specificarea problemei ce trebuie solutionata. Astfel limbajul logic poate fi conceput simultan ca limbaj de descriere, specificare formala a problemei si ca un limbaj de programare a calculatoarelor.Limbajul Prolog este doar un caz particular de abordare a programarii logice.
Limbajul Prolog ( PROgrammation en LOGique) a fost creat la Marsilia la inceputul anilor 70, inventatorii" fiind Alain Colmeraurer si Philippe Roussel. Fundamentele teoretice se gasesc in metoda demonstrarii automate dezvoltata incepand cu 1965 dupa metoda rezolutiei data de Julian Robinson. Un rol important l-a avut si R. Kowalski prin demonstrarea faptului ca se poate programa folosind logica.
In limbajul Prolog se poate face orice ca si in alte limbaje de programare. Insa Prologul are avantaje distincte precum si dezavantaje. Prelucrarea rapida a datelor numerice este un puct vulnerabil al lui. Prologul poate manui numere, insa nu asa de eficient ca un limbaj special destinat acestui lucru. Prologul, insa, marcheaza cand e vorba de manipularea simbolurilor. Ori manipularea simbolurilor este inima a ceea ce a devenit astazi cunoscut sub numele de Inteligenta Artificiala.
1.1 Principalele caracteristici ale limbajului Prolog
a) Este un limbaj de programare logica centrat pe date
Se deosebeste de Pascal, C care sunt limbaje imperative, centrate pe proces. Paradigma fundamentala a programarii logice este cea de programare declarativa. Focusul programarii logice este identificarea notiunii de calcul si notiunii de deductie. Mai exact, sistemele de programare logica reduc executarea unui program la cautarea prin respingere a clauzelor programului impreuna cu negatia propozitiei ce exprima intrebarea. Aici se urmeaza regula: o respingere e o deductie de la contrariu. Se bazeaza pe deductia liniara folosind clauze Horn. Se foloseste pentru a exprima relatii intre obiecte si a obtine informatii relativ la obiecte si relatiile dintre ele.
b) Este un limbaj descriptive
A scrie un program pentru calculator inseamna 2 lucruri:
- < CE >: specificarea exacta a rezultatelor dorite;
- < CUM >: proiectarea metodei prin care se obtin aceste rezultate.
Un limbaj este descriptiv daca accentul cade pe primul aspect (CE), alegerea metodei fiind lasata pe seama calculatorului. Un limbaj procedural este unul in care trebuie proiectata si metoda de obtinere a rezultatelor.
c) Este folosit in:
- programarea unor aplicatii in Inteligenta Artificiala;
- dezvoltarea sistemelor expert;
- procesarea limbajului natural (inclusiv traducere automata);
- robotica;
- teoria jocurilor;
- procesari de natura logica.
2. TURBO PROLOG
Implementare a Prolog-ului pentru calculatoare personale IBM PC si compatibile. Este un compilator foarte rapid lansat in 1988 de Borland International, cu multe predicate predefinite. Castigul in viteza s-a obtinut cu urmatorul pret:
- necesitatea declararii predicatelor si a tipurilor folosite;
- mai putin dinamic (regulile nu pot fi adaugate sau sterse);
- nu exista predicatul 'call';
- limitarea in amestecul tipurilor;
- imposibilitatea utilizarii unui simbol de predicat ca functie.
Preview document
Conținut arhivă zip
- Prolog.doc