plánovač | |
---|---|
Jazyková třída | Logické programování |
Objevil se v | 1969 |
Autor | Carl Hewitt |
Dialekty | éter |
ovlivnil | Lisp , QA-4 , Popler , Conniver a QLISP |
Planner je funkčně - logický programovací jazyk podobný ve své syntaxi Lisp . Vyvinutý v MIT Artificial Intelligence Laboratory Carlem Hewittem v letech 1967-1971, první publikace popisující jazyk vyšla v roce 1969 .
Původně byl autorem umístěn jako jazyk pro automatické plánování a dispečink v robotice , později jej odborníci na umělou inteligenci uznali jako jazyk, který má pro takové úkoly nejvhodnější sadu výrazových prostředků (předpokládalo se, že to vyžaduje flexibilní schopnosti zpracování symbolů). ). Navzdory tomu, že jazyk nebyl nikdy plně implementován, jeho dopad na výzkum související s umělou inteligencí v 70. letech se ukázal být v mnoha ohledech rozhodující.
Funkční část jazyka obsahovala prakticky celý Lisp jako podmnožinu, další části - vzorové párování , backtracking , volání procedur podle vzoru, deduktivní mechanismy v duchu logického programování.
V podobě, v jaké byl původně autorem popsán, nebyl jazyk nikdy implementován, a to jak kvůli těžkopádnosti, tak kvůli schematickosti popisu. První implementace, Micro-planner a Pico-planner, obsahovaly poměrně omezenou podmnožinu jazyka. Kompletnější možnosti byly implementovány v systému Popler a řadě jeho derivátů - QA-4 , Conniver , QLISP , Ether . V 70. letech 20. století v SSSR byl jazyk implementován v systému PLENER-BESM vyvinutém pro BESM-6 .
Ačkoli jazyk ve skutečnosti obsahuje Lisp zcela jako součást sebe sama, jeho vestavěné možnosti zpracování znaků jsou mnohem širší. Například funkce ELEMa RESTzobecnění funkcí CARa CDR, což vám umožní vybrat a zrušit libovolné prvky ze seznamu: [ELEM 1 L] = = A, [REST 2 L] = (С (D Е F) (G Н)). Také zavedení několika typů závorek (Lisp povoluje pouze závorky, což velmi ztěžuje čtení programů) učinilo programy mnohem přehlednějšími.
Jedním z nejpozoruhodnějších rysů jazyka je vyhledávání a analýza dat podle vzoru (první implementováno v Snoball a značně vyvinuto v Planer).
Specifická část jazyka je věnována schopnosti budovat a měnit popis prostředí, ve kterém je problém řešen: popis prostředí se nazývá „databáze“ a obsahuje jednotlivá tvrzení (fakta), která jsou pravdivá v toto prostředí. Kromě faktů obsažených v databázi musí program specifikovat logické vztahy mezi pojmy použitými v problému a také popisy akcí, které je povoleno provádět. Takové popisy se nazývají teorémy. Každý teorém má seznam podmínek (předpokladů), které musí být splněny, než může být aplikován. V důsledku aplikace teorému některá fakta z databáze přestávají být pravdivá a musí z ní být odstraněna, jiná se naopak pravdou stávají a musí být doplněna. Seznamy faktů obou druhů jsou také obsaženy v popisech vět.
Další důležitou inovací jazyka byl režim backtracking, který umožňuje opustit dříve učiněná rozhodnutí během provádění programu, pokud se ukáže, že nevedou k cíli.