Rindeaua

planificator
Clasa de limba Programare logica
Aparut in 1969
Autor Carl Hewitt
Dialectele eter
influențat Lisp , QA-4 , Popler , Conniver și QLISP

Planner este un limbaj de programare funcțional - logic similar în sintaxa lui Lisp . Dezvoltată la MIT Artificial Intelligence Laboratory de Carl Hewitt în 1967-1971, prima publicație care descrie limbajul a apărut în 1969 .  

Poziționat inițial de autor ca limbaj de planificare și dispecerare automată în robotică , ulterior a fost recunoscut de specialiștii în inteligență artificială ca un limbaj care are cel mai adecvat set de mijloace expresive pentru astfel de sarcini (se credea că aceasta necesită capacități flexibile de procesare simbolică). ). În ciuda faptului că limbajul nu a fost niciodată pe deplin implementat, impactul său asupra cercetărilor legate de inteligența artificială în anii 1970 s-a dovedit a fi, în multe privințe, decisiv.

Partea funcțională a limbajului conținea practic întregul Lisp ca subset, alte părți - potrivirea modelelor , backtracking , apelarea procedurilor după model, mecanisme deductive în spiritul programării logice.

În forma în care a fost descris inițial de autor, limbajul nu a fost niciodată implementat, atât din cauza greutății, cât și a caracterului schematic al descrierii. Primele implementări, Micro-planner și Pico-planner, au conținut un subset destul de limitat al limbajului. Opțiuni mai complete au fost implementate în sistemul Popler și o serie de derivate ale acestuia - QA-4 , Conniver , QLISP , Ether . În anii 1970 în URSS , limbajul a fost implementat în sistemul PLENER-BESM dezvoltat pentru BESM-6 .

Elemente

Deși limbajul conține de fapt Lisp în întregime ca parte a lui însuși, capabilitățile sale de procesare a caracterelor încorporate sunt mult mai largi. De exemplu, funcțiile ELEMși RESTgeneralizează funcțiile CARși CDR, permițându-vă să selectați și să eliminați elemente arbitrare din listă: [ELEM 1 L] = = A, [REST 2 L] = (С (D Е F) (G Н)). De asemenea, introducerea mai multor tipuri de paranteze (Lisp permite doar paranteze, ceea ce face ca programele să fie foarte greu de citit) a făcut programele mult mai clare.

Una dintre cele mai notabile caracteristici ale limbajului este căutarea și analiza datelor după model (implementată pentru prima dată în Snoball și dezvoltată foarte mult în Planer).

O parte specifică a limbajului este dedicată capacității de a construi și schimba descrierea mediului în care se rezolvă problema: descrierea mediului se numește „bază de date” și conține afirmații (fapte) individuale care sunt adevărate în acest mediu. Pe lângă faptele conținute în baza de date, programul trebuie să precizeze relațiile logice dintre conceptele utilizate în problemă, precum și descrieri ale acțiunilor care sunt permise să fie efectuate. Astfel de descrieri se numesc teoreme. Fiecare teoremă are o listă de condiții (precondiții) care trebuie îndeplinite înainte de a putea fi aplicată. Ca urmare a aplicării teoremei, unele fapte din baza de date încetează să fie adevărate și trebuie eliminate din ea, în timp ce altele, dimpotrivă, devin adevărate și trebuie completate. Liste de fapte de ambele tipuri sunt, de asemenea, conținute în descrierile teoremelor.

O altă inovație importantă a limbajului a fost modul de backtracking, care vă permite să abandonați deciziile luate anterior în timpul execuției programului dacă se dovedește că acestea nu duc la obiectiv.

Literatură