<<
>>

Логические языки программирования

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

Иногда логические языки называют языками, основанными на системе правил.

Здесь осуществляется проверка некоторого разрешающего высказывания (утверждения), и в случае его истинного значения выполняется соответствующее действие.

Логические языки программирования

71

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

Синтаксис программ для логических языков выглядит следующим образом: действиег :- разрешающее высказывание! действие2 :- разрешающее высказывание2

действиеп :- разрешающее высказываниеп

Подчеркнем еще раз: действия осуществляются не в той последовательности, в которой они определены в программе. Порядок выполнения определяют разрешающие высказывания, которые, по сути, являются предикатами первого порядка. Более подробно об этом будет рассказано в главе 21.

Пусть существует некоторая логическая машина.

Она имеет:

? набор фактов любит (том, футбол) любит (боб, баскетбол) любит (ник, теннис)

? аксиомы (правила вывода)

любит (том, Х) : - любит (билл, Х)

В этом описании приняты следующие обозначения:

1. Утверждения типа «Том любит футбол» представляются в виде: любит (том, футбол)

2.

Утверждение типа «Если Билл любит что-то, то это же любит Том» записывается как аксиома:

любит (том, Х) : - любит (билл, Х)

Здесь правая часть — это исходное условие (высказывание), а левая часть — заключение.

3. Имена постоянных пишутся с маленькой буквы (том), а имена переменных — с большой (Х).

Программа — это запрос к логической машине ? любит (билл, Y)

означающий «Что любит Билл?»

Цель выполнения программы: замена переменной на постоянную. Для этого просматриваются факты и аксиомы, ищутся возможные подстановки. Они могут выполняться неоднократно.

Подстановки для нашей программы:

1. любит (том, Y)

2. любит (том, футбол)

72

Глава 3. Виды языков программирования

В результате вместо Y подставляется футбол.

Примеры других программ, применимых к нашей логической машине:

? любит ^, футбол)

? любит (боб, Z)

? любит (том, футбол)

Последняя программа — это требование подтверждения факта.

Самый известный язык логического программирования получил название Prolog.

Он создан авторским коллективом из преподавателей Марсельского и Эдинбургского университетов (Франция, 1972).

В 1981 году Япония инициировала государственный проект по созданию компьютеров нового поколения, рабочим языком которых должен был стать Рго^. Увы, проект провалился (из-за ограниченных возможностей существующей элементной базы).

<< | >>

Еще по теме Логические языки программирования:

  1. О. Л. Голицына, Т. Л. Партыка, И. И. Попов. ЯЗЫКИ ПРОГРАММИРОВАНИЯ, 2008
  2. Перевод и иностранные языки
  3. Предложение №35 Осваивай новые Языки
  4. Сергей Александрович Орлов. Теория и практика языков программирования: Учебник для вузов. Стандарт 3-го поколения, 2013
  5. Основной курс (Программирование)
  6. Иванова Г.С. Основы программирования, 2002
  7. Эстетика программирования
  8. Г.С.Иванова, Т.Н.Ничушкина, Е.К.Пугачев. Объектно- ориентированное программирование, 2001
  9. Логическое ударение
  10. Часть вторая Родительское программирование
  11. МЫШЛЕНИЕ СЛОВЕСНО-ЛОГИЧЕСКОЕ
  12. Логическая последовательность вопросов
  13. 3.2.4. Логический анализ основных понятий
  14. 3.9. Логические ошибки
  15. Программирование телевизионного вещания
  16. По единому логическому основанию
  17. Логические ошибки вопроса
  18. 3.3. Логический контроль анкеты
  19. 1.3. Логическая структура вопроса