Шаг 49.
Резолюционная (хорновская) парадигма

    На этом шаге мы более детально рассмотрим резолюционную (хорновскую) парадигму.

    В толковых словарях [1-4] Вы прочитаете следующее...

    Языки логического программирования (Rule-Oriented Programming Languages) - класс языков программирования и подкласс декларативных языков, которые основаны на символической логике. Логическая парадигма основана на использовании механизма доказательства теорем, который позволяет выяснить, противоречиво ли некоторое множество логических формул. При этом программа может рассматриваться как набор логических формул совместно с теоремой (запросом), которая должна быть доказана. Формулы предназначены для представления различных фактов (данных) и правил вывода. Для хранения и эффективной работы с фактами и правилами привлекаются средства баз данных и сопоставление с образцом (унификация). При этом программист избавляется от необходимости определения точной последовательности шагов для выполнения вычислений. Логические языки программирования важны вследствие их декларативного характера, широких потенциальных возможностей, гибкости и пригодности к реализации в рамках вычислительных архитектур с высокой степенью параллелизма. Типичным представителем этой парадигмы является язык PROLOG, который основан на подмножестве хорновских выражений, но содержит некоторые "примесные" элементы для приближения его к естественному языку.

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

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

    1965 год. Американец Дж.Робинсон публикует статью "Машинно - ориентированная логика, основанная на принципе резолюции" (имеется перевод этой статьи в Кибернетическом сборнике, вып.7, 1970, с.194-218), содержащую математические основы резолюционного программирования.

    1972 год. Француз Ален Колмероэ из университета в Лумини (Марсель) разработал язык PROLOG.


(1)Борковский А.Б. Англо-русский словарь по программированию и информатике (с толкованиями). - М.: Русский язык, 1989. - 335 с.
(2)Заморин А.П., Марков А.С. Толковый словарь по вычислительной технике и программированию: Основные термины. - М.: Русский язык, 1988. - 221 с.
(3)Толковый словарь по вычислительным системам / Под ред. В.Иллингуорта, Э.Л.Глейзера, И.К.Пайла. - М.: Машиностроение, 1989. - 568 с.
(4)Першиков В.И., Савинков В.М. Толковый словарь по информатике. - М.: Финансы и статистика, 1991. - 543 с.
(5)Логическое программирование.- М.: Мир, 1988. - 368 с.


    На следующем шаге мы рассмотрим эквациональную парадигму.




Предыдущий шаг Содержание Следующий шаг