3. Представление о логическом и функциональном программировании.

Логическое программирование (Prolog) - использование логики в качестве языка программирования - строится на идее, что не человека следует обучать компьютерному мышлению, а компьютер должен выпол-нять инструкции, свойственные человеку.

В логическом программировании программа представляет собой не набор команд и инструкции для компьютера, а описание абстрактной модели решаемой задачи; в виде логических аксиом [хорновых предложений] (утверждений)

               A:-B1, B2, … Bn                       A  истинно, если истинны Bi

формулируются сведения о задаче и предположения, достаточные для её решения.

Подобная программа может выполняться путем постановки задачи, описанной в виде логического утверждения - целевого утверждения (вопроса)

               G?

Выполнение программы состоит в попытке решить задачу, т.е. доказать целевое утверждение G, используя предположения A, заданные в логической программе.

Наиболее известным языком логического программирования является Пролог, созданный на рубеже 60 - 70-х годов ХХ в. в Марсельском университете А. Колмерором и его сотрудниками на основе теоретических работ Р.А. Ковальского (программа доказательства теорем Programmation en Logique, которая включала интерпретатор хорновых дизъюнктов Ковальского).

Понятие о функциональном программировании (Lisp)

рисунокВ функциональном программировании программа представляет собой не набор команд и инструкции для компьютера, а совокупность функций, вызывающих друг друга, часто опосредованно, самих себя. Каждый вызов возвращает некоторое значение вызвавшей его функции (рисунок слева).

Вычисление продолжается до тех пор, пока не произойдет возвращение значения в функцию, которая вызвала и запустила всю программу. Эта функция возвращает результат пользователю.

Лисп (Lisp - название происходит от начальных букв двух слов Listing Processing - обработка списков) является самым известным языком функционального программирования. Он был реализован в 1958 г. сотрудником лаборатории искусственного интеллекта Стэнфордского университета Джоном Мак-Карти, и, таким образом, является одним из старейших языков программирования, после Фортрана, который, в отличии от Лиспа, к настоящему времени почти не используется.

 

Сайт управляется системой uCoz