Министерство образования и науки РФ
НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ЯДЕРНЫЙ УНИВЕРСИТЕТ «МИФИ»
Н. Г. Волчёнков
ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЯЗЫК ПРОЛОГ
ТЕКСТЫ ЛЕКЦИЙ
Издание 2-е, исправленное и дополненное
МОСКВА 2015
УДК 681.3.06(075.8)
ББК 32.973-018.2я73 В68
Волчёнков Н.Г. Логическое программирование. Язык Пролог: Тек-
сты лекций. Изд. 2-е, испр. и доп. – М.: НИЯУ МИФИ, 2015. – 160 с.
В данном пособии представлены тексты 10 лекций по курсу «Логическое программирование», целью изучения которого является освоение парадигмы логического программирования, а также основ Пролога – декларативного языка программируемой логики. Кроме того, в лекциях рассматриваются методы использования Пролога для решения таких задач символьной обработки, для которых императивные (операторные) языки программирования не очень удобны, в частности, для задач искусственного интеллекта и синтаксического анализа языков.
Пособие предназначено для студентов заключительного семестра бакалавриата и первого семестра магистратуры кафедры «Кибернетика» НИЯУ МИФИ, а также может быть использовано студентами, аспирантами и специалистами в области информатики и современных информационных технологий.
Рецензент М. А. Короткова
ISBN 978-5-7262-2091-8 © Национальный исследовательский ядерный университет «МИФИ», 2003, 2015
|
Редактор Н.Н. Антонова |
|
Подписано в печать 18.03.2015. |
Формат 60 84 1/16 |
|
Объем 10,0 п.л. |
Уч.-изд.л. 10,0. |
Тираж 100 экз. |
|
Изд. № 003-1. Заказ № 40. |
|
Национальный исследовательский ядерный университет «МИФИ». Типография НИЯУ МИФИ.
115409, Москва, Каширское шоссе, 31.
Содержание
Об авторе |
…………………………………………................... |
4 |
Предисловие |
…………………………………….……………… |
5 |
Лекция 1. |
Парадигма логического программирования…… |
8 |
Лекция 2. |
Синтаксис и семантика языка Пролог…………… |
25 |
Лекция 3. |
Основы программирования на Прологе………… |
40 |
Лекция 4. |
Основы программирования на Прологе |
|
|
(продолжение)……………………………………... |
54 |
Лекция 5. |
Синтаксический анализ на Прологе…………….. |
70 |
Лекция 6. |
Программирование эффективных синтаксических |
|
|
анализаторов………………………………………. |
82 |
Лекция 7. |
Программирование эффективных синтаксических |
|
|
анализаторов (продолжение)…………….………. |
95 |
Лекция 8. |
Пролог и базы данных……………………………. |
107 |
Лекция 9. |
Пролог и системы искусственного интеллекта… |
121 |
Лекция 10. |
Пролог и системы искусственного интеллекта |
|
|
(продолжение)....................................................... |
134 |
Литература и источники в интернете……………………...…… |
158 |
|
______
3
Об авторе
Волчёнков Николай Геннадьевич, кандидат технических наук, доцент кафедры «Кибернетика» НИЯУ МИФИ с 1982 г. Автор более 50 научных трудов, нескольких учебных пособий, в том числе выпущенных в центральных издательствах. Специализируется в области логического программирования, искусственного интеллекта, информатики и программирования в визуализированных средах. В настоящее время ведет курсы: «Логическое программирование», «Информационные технологии в экономике» на кафедре «Кибернетика» и на других кафедрах НИЯУ МИФИ. Является научным руководителем студентов, выполняющих курсовые и дипломные проекты, руководит подготовкой магистерских диссертаций.
4
Предисловие
Логическое программирование, вместе с функциональным программированием относят к так называемой декларативной парадигме. Это особый подход к компьютерному решению задач, в основе которых лежат, в основном, не вычисления, базирующиеся на алгоритмическом операторном подходе, а символьные преобразования. Можно сказать и так: В основе декларативной парадигмы лежит не традиционная для подавляющего большинства программистов проблема разработки алгоритмов – формального описания того, «как» надо решать задачу, а проблема формального описания того, «что» надо получить, решая задачу.
Короче говоря, «что» – это декларативная (в частности, логическая) парадигма, а «как» – это так называемая императивная парадигма. В значительной степени, декларативный подход реализован в языке программирования Пролог.
Курс, тексты лекций которого представлены в настоящем пособии, носит название «Логическое программирование». Курс предполагает изучение теоретических основ логического программирования (4 лекции), а также прикладных его аспектов: применения языка логического программирования Пролог для синтаксического анализа формальных языков (3 лекции), использования Пролога в дедуктивных базах данных и для решения задач искусственного интеллекта (3 лекции).
Чем продиктована необходимость чтения данного курса студентам кафедры «Кибернетика» – ведущей кафедры факультета «Кибернетика и информационная безопасность» (КиБ) НИЯУ МИФИ?
Вначале 1980-х годов на логическое программирование вообще
ина Пролог в частности в странах с передовыми компьютерными технологиями возлагали большие надежды многие специалисты в области информатики. Большой популярностью пользовался так называемый «японский проект вычислительных систем пятого поколения».
Однако, со временем, по ряду объективных и субъективных
причин произошел «откат» от идеи создания «искусственного интеллекта в кристалле» на базе Пролог-машины – идеи, которая, по
5