Limba este centrată în jurul unui mic set de mecanisme de bază, inclusiv potrivirea cu eșantionul. reprezentarea arborescentă a structurilor de date și enumerarea automată cu returnări. Destul de potrivite pentru rezolvarea problemelor, unde sunt luate în considerare obiectele (în special obiectele structurate) și relațiile dintre ele. Prolog, datorită caracteristicilor sale, este folosit în domeniul inteligenței artificiale, al lingvisticii computerizate și al programării non-numerice în general. În unele cazuri, punerea în aplicare de calcul simbolic în alte limbi standard, este necesitatea de a crea o mulțime de cod, complex pentru a înțelege, în timp ce realizarea la fel și în algoritmii de limbaj Prolog oferă un program simplu se poate potrivi cu ușurință pe o singură pagină.
Prologul este un limbaj de programare declarativ: logica programului este exprimată în termeni de relații reprezentate sub forma unor fapte și reguli. Pentru a iniția calculele, se execută o interogare specială la baza de cunoștințe, la care sistemul de programare logică generează răspunsurile "adevărat" și "fals". Pentru interogările generalizate cu variabile ca argumente, sistemul Prolog a creat date specifice pentru a susține adevărul informațiilor generalizate și regulile de ieșire.
Începutul istoriei limbii datează din anii 1970. [1] Fiind un limbaj de programare declarativ. Prolog percepe ca un program o descriere a sarcinilor sau a bazelor de cunoștințe și produce o concluzie logică, precum și o căutare pentru rezolvarea problemelor, folosind mecanismul de căutare cu revenire și unificare.
Interesul față de Prolog a crescut și a murit de mai multe ori, entuziasmul fiind înlocuit de o respingere dură. Cea mai mare a fost crescut interesul în limba Prolog ca limba viitorului, în timpul dezvoltării de-a cincea generație de calculatoare ale programului național japonez în anii 1980, când au fost în speranța dezvoltatorilor, care, cu ajutorul Prologul va fi de a formula noi principii care vor duce la crearea de calculatoare superioare nivelul inteligenței.
Prolog în 1980 a fost inclus în numărul de manuale școlare și universitare sovietice pentru studiul elementelor de informatică ale logicii matematice, principiile programării logice și baze de cunoștințe de proiectare și modele de sisteme expert. În acest scop, pe PC-ul IBM și o serie de computere școlare școlare au fost implementate interpreți educaționali de limbă rusă ale Prolog.
În limba Prolog, faptele sunt descrise sub forma predicatelor logice cu semnificații concrete. Regulile de ieșire sunt descrise de predicatele logice cu definirea regulilor de inferență logică sub forma unei liste de predicate față de bazele cunoașterii și procedurile de prelucrare a informațiilor.
În prezent, Prolog, în ciuda previziunilor pesimiste repetate, continuă să se dezvolte în diferite țări și încorporează noi tehnologii și concepte, precum și paradigme de programare imperativă. În special, una dintre domeniile de dezvoltare a limbajului (inclusiv în Rusia) implementează conceptul de agenți intelectuali.
Prolog este implementat pentru aproape toate sistemele de operare (OS) cunoscute și platformele (inclusiv Java și .NET). Sistemele de operare includ: OS pentru mainframe. întreaga familie Unix. Windows. OS pentru platforme mobile.
Principiul de bază este echivalenței limbii și prezentarea datelor de program (declarative), ceea ce face aprobarea limbii sunt atât de înregistrări, aceste înregistrări în baza de date, precum și regulile care transporta metodele lor de tratament. Combinația acestor calități conduce la faptul că, pe măsură ce funcționează sistemul Prolog, se acumulează cunoștințe (date și reguli). Prin urmare, sistemele Prolog sunt considerate un mediu natural pentru acumularea bazei de cunoștințe și pentru predarea elevilor și elevilor principiile programării logice.
Principalele concepte din limba Prolog sunt fapte, reguli de inferență și interogări care vă permit să descrieți bazele cunoașterii. proceduri de deducere și de luare a deciziilor.
Programul pe Prolog descrie relațiile definite prin intermediul propozițiilor. Ca și în orice altă limbă, sa concentrat asupra calculelor simbolice. frazele sunt construite din termeni care la rândul lor sunt subdivizate în atomi, numere, variabile și structuri. Atomul este scris cu o literă mică sau este introdus în ghilimele atunci când este necesară intrarea în capital.
Variabilele scrise cu o majusculă sunt diferite de variabilele din limbile de programare procedurală, nu sunt asociate cu o anumită celulă de memorie, ci mai degrabă mai aproape de o variabilă matematică.
Structurile sunt seturi de termeni închise în paranteze, inclusiv alte structuri. Structura este notată cu numele (functor), care este plasat în fața parantezelor.
Un alt model este listele, ale căror elemente sunt închise în paranteze pătrate. Listele din Prolog se bazează pe listele legate.
Regulile din Prolog sunt scrise sub formă de reguli de inferență cu concluzii logice și o listă de condiții logice. În Prologul pur, frazele sunt limitate la clauzele lui Horn:
și citiți astfel: "Titlul este TRUE, dacă corpul este TRUE." Corpul de reguli conține referințe la predicate, care sunt numite obiectivele regulii.
Buletine predicate, / 2 Semnificație: operator cu două argumente. Definește legătura dintre obiective. ; / 2 Operatorul definește disjuncția.
Faptele din limba Prolog sunt descrise de predicate logice cu semnificații concrete. Faptele din bazele de cunoștințe din limba Prolog reprezintă informații specifice (cunoștințe). Informațiile și cunoștințele generalizate în limba Prolog sunt specificate de regulile inferenței logice (definiții) și seturile acestor reguli de ieșire (definiții) asupra faptelor concrete și a informațiilor generalizate. Propunerile cu un corp gol sunt numite fapte. Exemplu de fapt:
Acest fapt este echivalent cu regula:
Prologul a criticat, în primul rând pentru declarativă incompletă: crearea unui număr mai mare sau mai puțin complexe și practic utile programe Prolog într-un stil complet declarativă este aproape imposibil, programatorul este obligat să recurgă la recepție procedurală, ceea ce duce la o creștere bruscă a complexității de a crea și de depanare programe, precum și slabă controlabilitate a rezultatelor intermediare. [2]
O altă caracteristică frecvent criticată a limbajului este lipsa de scriere (Visual Prolog, una dintre extensiile orientate pe obiect ale limbajului, implementează o tastare strictă).
Limbajul este prestabilit ordinea parcurgeri „în profunzime“ soluții și operatorii standardizate, care să permită să intervină în acest proces (cum ar fi tăierea operatorului sau sucursalei. ->). O astfel de arhitectură face dificilă paralelizarea automată a programelor, ceea ce ar permite ca mai multe procesoare sau noduri ale rețelei să fie utilizate în căutarea unei soluții.