Høvl

planlægger
Sprog klasse Logisk programmering
Dukkede op i 1969
Forfatter Carl Hewitt
Dialekter æter
påvirket Lisp , QA-4 , Popler , Conniver og QLISP

Planner er et funktionelt - logisk programmeringssprog, der i sin syntaks ligner Lisp . Udviklet på MIT Artificial Intelligence Laboratory af Carl Hewitt i 1967-1971, den første publikation, der beskriver sproget, udkom i 1969 .  

Oprindeligt positioneret af forfatteren som et sprog til automatisk planlægning og afsendelse inden for robotteknologi , blev det senere anerkendt af specialister i kunstig intelligens som et sprog, der har det mest passende sæt af udtryksmidler til sådanne opgaver (det blev antaget, at dette krævede fleksible symbolske behandlingsevner ). På trods af at sproget aldrig blev implementeret fuldt ud, viste dets indvirkning på forskningen i forbindelse med kunstig intelligens i 1970'erne på mange måder at være afgørende.

Den funktionelle del af sproget indeholdt praktisk talt hele Lisp som en delmængde, andre dele - mønstermatching , backtracking , kaldeprocedurer efter mønster, deduktive mekanismer i logisk programmerings ånd.

I den form, som det oprindeligt blev beskrevet af forfatteren, blev sproget aldrig implementeret, både på grund af besværligheden og den skematiske karakter af beskrivelsen. De første implementeringer, Micro-planner og Pico-planner, indeholdt en ret begrænset delmængde af sproget. Mere komplette muligheder blev implementeret i Popler -systemet og en række af dets derivater - QA-4 , Conniver , QLISP , Ether . I 1970'erne i USSR blev sproget implementeret i PLENER-BESM-systemet udviklet til BESM-6 .

Elementer

Selvom sproget faktisk indeholder Lisp helt som en del af sig selv, er dets indbyggede karakterbehandlingsmuligheder meget bredere. For eksempel funktionerne ELEMog RESTgeneralisere funktionerne CARog CDR, så du kan vælge og kassere vilkårlige elementer fra listen: [ELEM 1 L] = = A, [REST 2 L] = (С (D Е F) (G Н)). Desuden har indførelsen af ​​flere typer parenteser (Lisp tillader kun parenteser, hvilket gør programmer meget svære at læse) gjort programmerne meget mere overskuelige.

Et af de mest bemærkelsesværdige træk ved sproget er søgning og analyse af data efter mønster (først implementeret i Snoball og stærkt udviklet i Planer).

En specifik del af sproget er helliget evnen til at opbygge og ændre beskrivelsen af ​​det miljø, hvori problemet løses: beskrivelsen af ​​miljøet kaldes en "database" og indeholder individuelle udsagn (fakta), der er sande i dette miljø. Ud over de fakta, der er indeholdt i databasen, skal programmet specificere de logiske sammenhænge mellem de begreber, der er brugt i opgaven, samt beskrivelser af de handlinger, der må udføres. Sådanne beskrivelser kaldes teoremer. Hvert teorem har en liste over betingelser (forudsætninger), der skal være opfyldt, før det kan anvendes. Som et resultat af at anvende sætningen ophører nogle fakta fra databasen med at være sande og skal fjernes fra den, mens andre tværtimod bliver sande og skal genopfyldes. Lister over fakta af begge slags er også indeholdt i beskrivelser af teoremer.

En anden vigtig nyskabelse af sproget var backtracking-tilstanden, som giver dig mulighed for at opgive tidligere trufne beslutninger under udførelsen af ​​programmet, hvis det viser sig, at de ikke fører til målet.

Litteratur