Gyalugép

tervező
Nyelvóra Logikai programozás
Megjelent 1969
Szerző Carl Hewitt
Dialektusok éter
befolyásolta Lisp , QA-4 , Popler , Conniver és QLISP

A Planner egy funkcionális - logikai programozási nyelv , amely szintaxisában hasonló a Lisp -hez . Az MIT Mesterséges Intelligencia Laboratóriumában Carl Hewitt fejlesztette ki 1967-1971-ben, az első nyelvet leíró kiadvány 1969 -ben jelent meg .  

A szerző kezdetben a robotika automatikus tervezésének és diszpécserének nyelveként pozícionálta , később a mesterséges intelligencia szakemberei felismerték, hogy az ilyen feladatokhoz a legmegfelelőbb kifejezőeszköz-készlettel rendelkezik (úgy vélték, hogy ehhez rugalmas szimbolikus feldolgozási képességek szükségesek). ). Annak ellenére, hogy a nyelv soha nem valósult meg teljesen, a mesterséges intelligenciával kapcsolatos kutatásokra gyakorolt ​​hatása az 1970-es években sok szempontból meghatározónak bizonyult.

A nyelv funkcionális része gyakorlatilag a Lisp teljes egészét tartalmazta, mint részhalmazt, egyéb részeit - mintaillesztés , visszalépés , eljárások minta szerinti hívása, deduktív mechanizmusok a logikai programozás jegyében.

Abban a formában, ahogyan azt a szerző eredetileg leírta, a nyelvezet soha nem valósult meg, mind a leírás nehézkessége, mind sematikussága miatt. Az első implementációk, a Micro-planner és a Pico-planner, a nyelv meglehetősen korlátozott részét tartalmazták. A Popler rendszerben és számos származékában – QA-4 , Conniver , QLISP , Ether – még teljesebb opciókat implementáltak . Az 1970-es években a Szovjetunióban a nyelvet a BESM-6 számára kifejlesztett PLENER-BESM rendszerben alkalmazták .

Elemek

Bár a nyelv valójában teljes egészében önmagában tartalmazza a Lisp-et, a beépített karakterfeldolgozási képességei sokkal szélesebbek. Például a függvények ELEMés RESTáltalánosítsák a és függvényeket CAR, CDRlehetővé téve tetszőleges elemek kiválasztását és elvetését a listából: [ELEM 1 L] = = A, [REST 2 L] = (С (D Е F) (G Н)). Emellett a többféle zárójelek bevezetése (a Lisp csak zárójeleket engedélyez, ami nagyon megnehezíti a programok olvashatóságát) sokkal áttekinthetőbbé tette a programokat.

A nyelv egyik legfigyelemreméltóbb jellemzője az adatok minta szerinti keresése és elemzése (először a Snoballban valósították meg, és nagymértékben fejlesztették a Planerben).

A nyelv egy meghatározott része annak a képességnek van szentelve, hogy meg lehessen építeni és módosítani a környezet leírását, amelyben a probléma megoldódik: a környezet leírását "adatbázisnak" nevezik, és egyedi állításokat (tényeket) tartalmaz, amelyek igazak ezt a környezetet. Az adatbázisban szereplő tényeken túl a programnak meg kell határoznia a feladatban használt fogalmak közötti logikai kapcsolatokat, valamint a végrehajtható műveletek leírását. Az ilyen leírásokat tételeknek nevezzük. Minden tételnek van egy listája a feltételekről (előfeltételekről), amelyeknek teljesülniük kell az alkalmazás előtt. A tétel alkalmazása következtében az adatbázisból bizonyos tények megszűnnek igazak lenni, és ki kell törölni onnan, míg mások éppen ellenkezőleg igazzá válnak, és pótolni kell. Mindkét típusú tények listája a tételleírásokban is megtalálható.

A nyelv másik fontos újítása volt a backtracking mód, amely lehetővé teszi, hogy a program végrehajtása során a korábban meghozott döntéseket elhagyjuk, ha kiderül, hogy azok nem vezetnek a célhoz.

Irodalom