Planner (іноді записується великими літерами як PLANNER, в радянській літературі також застосовувалося транслітероване Пле́нер) — функційно-логічна мова програмування, схожа за своїм синтаксисом з Ліспом.
Planner | |
---|---|
Парадигма | Логічне програмування |
Дата появи | 1969 |
Творці | [en] |
Діалекти | |
Вплинула на | , , і |
Була розроблена [en] в Лабораторії Штучного Інтелекту Массачусетського Технологічного Інституту. Перша публікація з описом мови з'явилася 1969 року (Hewitt, 1969).
Planner — перша мова логічного програмування, в якій було закладено можливість автоматичного виведення результату з даних і заданих правил перебору варіантів (сукупність яких називалася планом). Planner застосовувалася для того, щоби знизити вимоги до обчислювальних ресурсів (за допомогою методу пошуку з вертанням) і забезпечити можливість виведення фактів, без активного застосування стека. Потім було розроблено мову Prolog, яка не вимагала плану перебору варіантів, і була в цьому сенсі спрощенням мови Planner. Зараз Planner дуже нагадує єдинорога: ми багато про неї знаємо, але вона ніколи не існувала. Інакше кажучи, мова програмування Planner ще ніде ніколи не використовувалася. Тим не менше, ідеї, покладені в основу мови Planner, виявились дуже продуктивними, і було створено й випробувано декілька варіантів і фрагментів цієї мови. Одним з найвідоміших виявився MICRO-PLANNER.
Незважаючи на те, що мову так і не було, судячи з усього, реалізовано в повному обсязі, її вплив на дослідження, пов'язані зі штучним інтелектом, виявився багато в чому визначним.
Реалізації і похідні системи
Перші реалізації, Micro-planner та Pico-planner, містили досить обмежені підмножини мови. Практично повні варіанти Planner було реалізовано в системі і ряді похідних — , , , .
В СРСР цю мову було реалізовано в системі пленер-БЕСМ, розробленій для БЕСМ-6 в кінці 1970-х років.
LISP та Prolog — дві найпопулярніші мови символьної обробки. Однак цікаві ідеї пропонувалися і творцями інших мов, які не отримали широкої популярності. Одна з таких мов — Planner. Свою назву (що перекладається як «планувальник») вона отримала завдяки тому, що була здебільшого призначена для створення систем планування дій роботів. Planner була розроблена Карлом Х'юїттом з Массачусетського технологічного інституту 1971 року, і стала серйозним етапом у розвитку ідей обробки символьної інформації.
Planner має всі можливості мови LISP, тобто, фактично, LISP є її підмножиною. Але набір вбудованих функцій в мові Planner набагато ширший, а самі вони зазвичай набагато могутніші відповідних функцій мови LISP. Наприклад, функції ELEM і REST узагальнюють функції CAR і CDR, дозволяючи виділяти й відкидати зі списку довільні елементи: [ELEM 1 L] = = A, [REST 2 L] = (С (D Е F) (G Н))
. Крім того, введення в запис декількох типів дужок (в мові LISP допускаються лише круглі дужки, що дуже ускладнює читання програм) зробило програми набагато зрозумілішими. Але найголовніше, мову було збагачено додатковими можливостями.
Перша з них — пошук і аналіз даних за зразком. Подібний механізм був успішно випробуваний в мові Snobol і широко застосовується зараз, наприклад, коли в Norton Commander задається пошук всіх файлів виду *.doc
, то виконується саме ця дія.
Друга додаткова можливість дозволяє досить ефективно застосовувати Planner при створенні систем штучного інтелекту: можна будувати і змінювати опис середовища, в якому розв'язується завдання. Опис середовища називається базою даних, і містить окремі твердження (факти), істинні в даному середовищі. Крім фактів, що містяться в базі даних, в програмі потрібно задавати логічні відносини між використовуваними в завдані поняттями, а також опису дій, які дозволено проводити. Такі описи називаються теоремами. Кожна теорема має список умов (передумов), які повинно бути виконано, перш ніж стане можливим її застосування. В результаті застосування теореми деякі факти з бази даних перестають бути істинними і повинні бути з неї вилучені, а інші, навпаки, стають істинними, і повинні її поповнити. Списки фактів обох видів також містяться в описах теорем.
Найважливішим нововведенням мови Planner став режим повернень. Він дозволяє під час роботи програми відмовлятися від ухвалених раніше рішень, якщо виявляється, що вони не призведуть до мети. Для штучного інтелекту взагалі характерне застосування перебору варіантів під час розв'язання завдань, вбудований в мову Planner режим повернень (його ще називають механізмом пошуку з поверненням, англ. backtracking) звільняє програміста від необхідності самому реалізовувати такий перебір.
Функційний підхід проти логічного підходу
Двома основними парадигмами для побудови семантичних систем програмного забезпечення були функційна і логічна. Функційну парадигму було втілено Ліспом (McCarthy та ін., 1962), яка характеризується рекурсивними процедурами, які оперують списками структур.
Логічну парадигму було втілено в процедури за допомогою правила резолюцій (Robinson, 1965). Згідно з логічною парадигмою це був «обман», щоби включити функційні знання (Green, 1969).
Одначе, Planner змогла умістити в собі такі переваги логічного і функційного програмування, як:
- зручність опису відносин між об'єктами (реляційна модель);
- можливість перебору і пошуку різних рішень;
- легкість розуміння налагодження програм;
- компактність коду;
- легкість опису складних структур даних;
- підвищення надійності коду;
- зручність організації модульного тестування;
- можливості оптимізації при компіляції;
- можливості паралелізму.
Джерела
- Алгоритмізація та програмування — StudFiles [ 8 квітня 2016 у Wayback Machine.]
- Ю. Чарняк, Умозаключения и знания, Часть 1, Язык программирования Planner [ 30 вересня 2017 у Wayback Machine.] (рос.)
- Логічне програмування — glossary.starbasic.net
- McCarthy, John; Abrahams, Paul; Edwards, Daniel; Hart, Timothy; Levin, Michael (1962). Lisp 1.5 Programmer’s Manual. MIT Computation Center and Research Laboratory of Electronics. (англ.)
- Robinson, John Alan (1965). A Machine-Oriented Logic Based on the Resolution Principle. CACM. (англ.)
- Green, Cordell (1969). Application of Theorem Proving to Problem Solving. IJCAI. (англ.)
- Hewitt, Carl (1969). PLANNER: A Language for Proving Theorems in Robots. IJCAI. (CiteSeerX): 10.1.1.80.756. (англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Planner inodi zapisuyetsya velikimi literami yak PLANNER v radyanskij literaturi takozh zastosovuvalosya transliterovane Ple ner funkcijno logichna mova programuvannya shozha za svoyim sintaksisom z Lispom PlannerParadigmaLogichne programuvannyaData poyavi1969Tvorci en DialektiVplinula na i Bula rozroblena en v Laboratoriyi Shtuchnogo Intelektu Massachusetskogo Tehnologichnogo Institutu Persha publikaciya z opisom movi z yavilasya 1969 roku Hewitt 1969 Planner persha mova logichnogo programuvannya v yakij bulo zakladeno mozhlivist avtomatichnogo vivedennya rezultatu z danih i zadanih pravil pereboru variantiv sukupnist yakih nazivalasya planom Planner zastosovuvalasya dlya togo shobi zniziti vimogi do obchislyuvalnih resursiv za dopomogoyu metodu poshuku z vertannyam i zabezpechiti mozhlivist vivedennya faktiv bez aktivnogo zastosuvannya steka Potim bulo rozrobleno movu Prolog yaka ne vimagala planu pereboru variantiv i bula v comu sensi sproshennyam movi Planner Zaraz Planner duzhe nagaduye yedinoroga mi bagato pro neyi znayemo ale vona nikoli ne isnuvala Inakshe kazhuchi mova programuvannya Planner she nide nikoli ne vikoristovuvalasya Tim ne menshe ideyi pokladeni v osnovu movi Planner viyavilis duzhe produktivnimi i bulo stvoreno j viprobuvano dekilka variantiv i fragmentiv ciyeyi movi Odnim z najvidomishih viyavivsya MICRO PLANNER Nezvazhayuchi na te sho movu tak i ne bulo sudyachi z usogo realizovano v povnomu obsyazi yiyi vpliv na doslidzhennya pov yazani zi shtuchnim intelektom viyavivsya bagato v chomu viznachnim Realizaciyi i pohidni sistemiPershi realizaciyi Micro planner ta Pico planner mistili dosit obmezheni pidmnozhini movi Praktichno povni varianti Planner bulo realizovano v sistemi i ryadi pohidnih V SRSR cyu movu bulo realizovano v sistemi plener BESM rozroblenij dlya BESM 6 v kinci 1970 h rokiv LISP ta Prolog dvi najpopulyarnishi movi simvolnoyi obrobki Odnak cikavi ideyi proponuvalisya i tvorcyami inshih mov yaki ne otrimali shirokoyi populyarnosti Odna z takih mov Planner Svoyu nazvu sho perekladayetsya yak planuvalnik vona otrimala zavdyaki tomu sho bula zdebilshogo priznachena dlya stvorennya sistem planuvannya dij robotiv Planner bula rozroblena Karlom H yuyittom z Massachusetskogo tehnologichnogo institutu 1971 roku i stala serjoznim etapom u rozvitku idej obrobki simvolnoyi informaciyi Planner maye vsi mozhlivosti movi LISP tobto faktichno LISP ye yiyi pidmnozhinoyu Ale nabir vbudovanih funkcij v movi Planner nabagato shirshij a sami voni zazvichaj nabagato mogutnishi vidpovidnih funkcij movi LISP Napriklad funkciyi ELEM i REST uzagalnyuyut funkciyi CAR i CDR dozvolyayuchi vidilyati j vidkidati zi spisku dovilni elementi ELEM 1 L A REST 2 L S D E F G N Krim togo vvedennya v zapis dekilkoh tipiv duzhok v movi LISP dopuskayutsya lishe krugli duzhki sho duzhe uskladnyuye chitannya program zrobilo programi nabagato zrozumilishimi Ale najgolovnishe movu bulo zbagacheno dodatkovimi mozhlivostyami Persha z nih poshuk i analiz danih za zrazkom Podibnij mehanizm buv uspishno viprobuvanij v movi Snobol i shiroko zastosovuyetsya zaraz napriklad koli v Norton Commander zadayetsya poshuk vsih fajliv vidu doc to vikonuyetsya same cya diya Druga dodatkova mozhlivist dozvolyaye dosit efektivno zastosovuvati Planner pri stvorenni sistem shtuchnogo intelektu mozhna buduvati i zminyuvati opis seredovisha v yakomu rozv yazuyetsya zavdannya Opis seredovisha nazivayetsya bazoyu danih i mistit okremi tverdzhennya fakti istinni v danomu seredovishi Krim faktiv sho mistyatsya v bazi danih v programi potribno zadavati logichni vidnosini mizh vikoristovuvanimi v zavdani ponyattyami a takozh opisu dij yaki dozvoleno provoditi Taki opisi nazivayutsya teoremami Kozhna teorema maye spisok umov peredumov yaki povinno buti vikonano persh nizh stane mozhlivim yiyi zastosuvannya V rezultati zastosuvannya teoremi deyaki fakti z bazi danih perestayut buti istinnimi i povinni buti z neyi vilucheni a inshi navpaki stayut istinnimi i povinni yiyi popovniti Spiski faktiv oboh vidiv takozh mistyatsya v opisah teorem Najvazhlivishim novovvedennyam movi Planner stav rezhim povernen Vin dozvolyaye pid chas roboti programi vidmovlyatisya vid uhvalenih ranishe rishen yaksho viyavlyayetsya sho voni ne prizvedut do meti Dlya shtuchnogo intelektu vzagali harakterne zastosuvannya pereboru variantiv pid chas rozv yazannya zavdan vbudovanij v movu Planner rezhim povernen jogo she nazivayut mehanizmom poshuku z povernennyam angl backtracking zvilnyaye programista vid neobhidnosti samomu realizovuvati takij perebir Funkcijnij pidhid proti logichnogo pidhoduDvoma osnovnimi paradigmami dlya pobudovi semantichnih sistem programnogo zabezpechennya buli funkcijna i logichna Funkcijnu paradigmu bulo vtileno Lispom McCarthy ta in 1962 yaka harakterizuyetsya rekursivnimi procedurami yaki operuyut spiskami struktur Logichnu paradigmu bulo vtileno v proceduri za dopomogoyu pravila rezolyucij Robinson 1965 Zgidno z logichnoyu paradigmoyu ce buv obman shobi vklyuchiti funkcijni znannya Green 1969 Odnache Planner zmogla umistiti v sobi taki perevagi logichnogo i funkcijnogo programuvannya yak zruchnist opisu vidnosin mizh ob yektami relyacijna model mozhlivist pereboru i poshuku riznih rishen legkist rozuminnya nalagodzhennya program kompaktnist kodu legkist opisu skladnih struktur danih pidvishennya nadijnosti kodu zruchnist organizaciyi modulnogo testuvannya mozhlivosti optimizaciyi pri kompilyaciyi mozhlivosti paralelizmu DzherelaAlgoritmizaciya ta programuvannya StudFiles 8 kvitnya 2016 u Wayback Machine Yu Charnyak Umozaklyucheniya i znaniya Chast 1 Yazyk programmirovaniya Planner 30 veresnya 2017 u Wayback Machine ros Logichne programuvannya glossary starbasic net McCarthy John Abrahams Paul Edwards Daniel Hart Timothy Levin Michael 1962 Lisp 1 5 Programmer s Manual MIT Computation Center and Research Laboratory of Electronics angl Robinson John Alan 1965 A Machine Oriented Logic Based on the Resolution Principle CACM angl Green Cordell 1969 Application of Theorem Proving to Problem Solving IJCAI angl Hewitt Carl 1969 PLANNER A Language for Proving Theorems in Robots IJCAI CiteSeerX 10 1 1 80 756 angl