Логические языки программирования
Иногда логические языки называют языками, основанными на системе правил.
Здесь осуществляется проверка некоторого разрешающего высказывания (утверждения), и в случае его истинного значения выполняется соответствующее действие.
Логические языки программирования |
71 |
В императивном языке программирования вычисления описываются очень подробно, с обязательным указанием порядка выполнения операторов. В языке, основанном на системе правил, не существует определенного порядка применения правил, и система реализации языка должна сама выбрать нужный порядок выполнения действий, который приведет к желаемому результату. Такая парадигма программирования радикально отличается от парадигм, используемых в остальных трех видах языков программирования, и, безусловно, требует абсолютно иной языковой поддержки. Синтаксис программ для логических языков выглядит следующим образом: действиег :- разрешающее высказывание! действие2 :- разрешающее высказывание2 действиеп :- разрешающее высказываниеп Подчеркнем еще раз: действия осуществляются не в той последовательности, в которой они определены в программе. Порядок выполнения определяют разрешающие высказывания, которые, по сути, являются предикатами первого порядка. Более подробно об этом будет рассказано в главе 21. Пусть существует некоторая логическая машина. Она имеет: ? набор фактов любит (том, футбол) любит (боб, баскетбол) любит (ник, теннис) ? аксиомы (правила вывода) любит (том, Х) : - любит (билл, Х) В этом описании приняты следующие обозначения: 1. Утверждения типа «Том любит футбол» представляются в виде: любит (том, футбол) 2. Утверждение типа «Если Билл любит что-то, то это же любит Том» записывается как аксиома:любит (том, Х) : - любит (билл, Х) Здесь правая часть — это исходное условие (высказывание), а левая часть — заключение. 3. Имена постоянных пишутся с маленькой буквы (том), а имена переменных — с большой (Х). Программа — это запрос к логической машине ? любит (билл, Y) означающий «Что любит Билл?» Цель выполнения программы: замена переменной на постоянную. Для этого просматриваются факты и аксиомы, ищутся возможные подстановки. Они могут выполняться неоднократно. Подстановки для нашей программы: 1. любит (том, Y) 2. любит (том, футбол) |
72 |
Глава 3. Виды языков программирования |
В результате вместо Y подставляется футбол. Примеры других программ, применимых к нашей логической машине: ? любит ^, футбол) ? любит (боб, Z) ? любит (том, футбол) Последняя программа — это требование подтверждения факта. Самый известный язык логического программирования получил название Prolog. Он создан авторским коллективом из преподавателей Марсельского и Эдинбургского университетов (Франция, 1972). В 1981 году Япония инициировала государственный проект по созданию компьютеров нового поколения, рабочим языком которых должен был стать Рго^. Увы, проект провалился (из-за ограниченных возможностей существующей элементной базы). |