Îndeplinirea acestui ciclu de lucrări de laborator ne va permite să stăpânim stadiul inițial de programare în limba Prolog și vom servi ca un impuls pentru o autodidactare a limbii.
Prologul nu se concentrează pe elaborarea de soluții, ci pe o descriere sistematică și formalizată a problemei, astfel încât soluția să rezulte din această descriere. Prolog a primit numele său din cuvintele "Programarea în limba LOGIC". De fapt, Prolog nu este considerat o limbă pură a programării logice, dar crearea sa este un pas important în această direcție.
1. Structura programului și sintaxa limbajului prolog
Un program pe Prolog este un set de axiome și reguli care definesc relațiile între obiecte. Calculul unui astfel de program logic este derivarea consecințelor din program. Programul stabilește un set de consecințe, care reprezintă valoarea programului. Construcțiile de bază ale programării logice sunt termeni și declarații. Există trei tipuri principale de declarații: fapte, reguli și întrebări, singura structură de date fiind un termen logic.
Faptul este cel mai simplu tip de afirmație folosit pentru a afirma că o anumită relație se face între obiecte.
Acest fapt afirmă că Vera este soția lui Alex. Un alt nume pentru un fapt sau o relație este un "predicat". Numele persoanelor din predicat sunt "atomi".
A doua formă de afirmare în programul logic este întrebarea. O întrebare este un mijloc de extragere a informațiilor dintr-un program logic. Cu ajutorul întrebării devine clar dacă a fost îndeplinită o anumită relație între obiecte. Întrebările și faptele sintactice arată la fel, dar se pot distinge prin context. Obiectul înregistrat în secțiunea țintă sau în fereastra Dialog este denumit țintă. O întrebare simplă constă într-un singur scop.
În Turboproduct, constantele pot avea o formă numerică sau simbolică. Numărul poate fi un număr întreg sau un număr real: 0; -1; 123,4; 0.23E-5. Constantele care sunt atomi sunt o secvență de caractere închise pe două laturi în ghilimele duble. Când tipăriți, aceste citate duble nu sunt de obicei imprimate. Există cazuri în care atomii nu trebuie să fie încadrați în ghilimele:
un atom format numai din numere, litere și subliniere și începând cu o literă mică;
un atom format în întregime din simboluri speciale. Simbolurile speciale includ:
De regulă, în programele pe Prolog, atomii fără citate sunt utilizați.
Un atom care nu trebuie să fie inclus în ghilimele poate fi scris în ghilimele. Înregistrarea cu cotații externe și fără ele determină același atom.
Conceptul unei variabile în prolog diferă de cel adoptat în multe limbi de programare. O variabilă nu este tratată ca o locație de memorie dedicată. Acesta servește pentru a indica un obiect care nu poate fi referit la nume. O variabilă poate fi considerată un nume local pentru un obiect.
Sintaxa variabilei este destul de simplă. Ar trebui să înceapă cu o majusculă sau cu un subliniere și să conțină numai litere, numere și subliniere.
O variabilă constând doar dintr-o subliniere este numită anonimă și este utilizată dacă numele variabilei nu este semnificativ.
Domeniul variabilelor
Domeniul de aplicare al variabilei este declarația. În cadrul declarației, același nume aparține aceleiași variabile. Două instrucțiuni pot folosi un nume de variabilă într-un mod complet diferit. Regula de determinare a domeniului de aplicare a unei variabile este de asemenea valabilă și în cazul recurgerii și în cazul în care mai multe declarații au același scop. Această întrebare va fi luată în considerare într-un capitol ulterior.
Singura excepție de la regula pentru determinarea sferei variabilelor este o variabilă anonimă, de exemplu, "_" în scopul iubirii (X, _). Fiecare variabilă anonimă este o entitate separată. Se utilizează atunci când o anumită valoare a unei variabile nu este relevantă pentru o anumită declarație. Astfel, fiecare variabilă anonimă diferă în mod clar de toate celelalte variabile și declarații anonime.
Alte variabile decât variabilele anonime se numesc variabile numite. și nespecifice (variabile care nu au primit o valoare) sunt numite libere.
Constantele și variabilele din Prolog sunt termeni.
În plus, termenii sunt termeni sau structuri compuse. Un termen compus conține un functor (numit functorul principal) și o secvență de unul sau mai multe argumente care sunt termeni. Functorul este dat de numele său, care este un atom și de natura sau numărul de argumente. Termenii compuși sintactic au forma f (t1, t2, ..., tn), unde f este numele functorului n-ary și ti sunt argumente. Exemple de termeni compuși: s (0), părinți (X, mary), lista (a, lista (b, nil)).
Predicatul țintă este mapat la predicatele din program, astfel încât țintă va avea întotdeauna obiectul. Obiectivele sunt ca fapte și reguli, sunt construite din predicate și, prin urmare, pot avea legături. Obiectivele care au ligamente sunt numite goluri cu subgoale. Sub-obiectivele aprobării obiectivelor sunt separate prin virgule în același mod ca și condițiile din reguli. Când obiectivul este introdus în program pe Turbo Prolog, întregul obiectiv are succes.