Математика

Физика

Химия

Биология

Техника и    технологии

Пролог — язык программирования будущего-Доорс Дж
Доорс Дж. и др.
Д55 Пролог — язык программирования будущего/ Дж.Доорс, А.Р.Рейблейн, С.Вадера: Пер. с англ.; Предисловие А.Н.Волкова.- М.:Финансы и статистика 1990. 144 с.: ил. ISBN 5-279-00444-8.
Настоящее введение в Пролог содержит описание подмножества языка, общего для многих реализаций. Рассмотрены синтаксические элементы и структуры языка, арифметические функции, рекурсия, структуры данных (списки и деревья), операторы и процедуры, встроенные функции для отладки программ и работа с БД. Книга может быть рекомендована как учебник и как компактное справочное издание.
Для программистов, специалистов в области искусственного интеллекта и баз данных.
Предисловие к русскому изданию
В начале 70-х годов группа специалистов Марсельского университета во главе с А. Колмероэ разработала специализированную систему для доказательства теорем. Она была написана на языке Фортран и использовалась для обработки естественного языка. Система доказательства теорем, названная Пролог, воплощала процедурную семантику Р. Ковальского. Позже ван Эмден и Р. Ковальский разработали формальную семантику для языка логических
программ.
В настоящее время не существует универсального стандарта на Пролог. Все же реализация, описанная У. Клоксиным и К. Мелли-шем в книге «Программирование на языке Пролог» [3 ], может быть принята за стандарт языка.
Сегодня Пролог - язык, предназначенный для программирования приложений, использующих средства и методы искусственного интеллекта и создания экспертных систем. Причиной растущей популярности Пролога явилось требование создания средств, обеспечивающих «дружественный интерфейс» и интеллектуальность программ.
Пролог применяется при создании приложений в следующих областях:
— разработка быстрых прототипов прикладных программ;
— управление производственными процессами;
— создание динамических реляционных баз данных;
— перевод с одного языка на другой;
— создание естественно-языковых интерфейсов для существующих систем;
— реализация экспертных систем и оболочек экспертных систем;
— создание пакетов символьных вычислений для решения уравнений, дифференцирования и интегрирования;
— доказательство теорем и пакеты искусственного интеллекта, в которых возможности Пролога по обеспечению дедуктивного вывода применяются для проверки различных теорий.
Математическая модель, лежащая в основе Пролога, шире модели реляционных баз данных. По этой причине Пролог может использоваться для приложений обработки информации. Возможности Пролога как языка запросов к базе данных превосходят возможности любой другой базы данных.
Пролог - язык пятого поколения, открывающий новое измерение для программирования на ЭВМ. На Прологе можно писать программы для решения реальных задач, усвоив лишь минимальное число концепций программирования. Пролог является декларативным языком. Программист задает необходимые факты и правила, а Пролог использует дедуктивный вывод для решения задачи. Такой метод представляет собой полную противоположность программированию на каком-либо процедурном языке. Благодаря естественному, логическому подходу, который принят в Прологе, как новички, так и профессиональные программисты могут создавать мощные системы в удивительно короткие сроки.
Формальная точность и возможность интерпретации Пролога делают его чрезвычайно подходящим языком для представления знаний.
В области эспертных систем Пролог применяется для моделирования экспертизы в различных предметных областях. Коммерческие системы, написанные на Прологе, ориентированы на такие приложения, как медицина, законодательство и автоматизация производства.
В нашей стране в среде разработчиков систем искусственного интеллекта остро ощущается нехватка литературы по языкам искусственного интеллекта и в том числе по Прологу. Предлагаемая советскому читателю книга Дж.Доорса, А.Р.Рейблейна, С.Вадеры «Пролог - язык программирования будущего» знакомит с основами программирования на языке Пролог. В ней описывается синтаксис Пролога, включающий понятия терма, структуры, оператора, списка. Определяются наиболее важные аспекты программирования на Прологе: унификация и конкретизация переменных. Пролог является универсальным языком программирования, любая Пролог-система содержит все обычные арифметические операторы. В книге рассмотрены встроенные предикаты, служащие для вычисления и сравнения арифметических выражений.
Особую важность при программировании на Прологе приобретает рекурсия. В настоящем издании идеи рекурсии показаны на числовых примерах.
?
На Прологе удобно описывать такие структуры данных, как списки и деревья. Каким образом такие структуры представляются термами языка Пролог, читатель сможет проследить на примерах, приведенных в книге. Описаны также встроенные пред1 каты, позволяющие добавлять и удалять утверждения из базы данных Пролога.
Книга не является исчерпывающим описанием Пролога, но окажется полезной для желающих познакомиться с достаточно новым языком. Читатель найдет в ней примеры создания программ различной сложности и, быть может, данная книга послужит отправной точкой для увлекательного путешествия в мир языка Пролог.
Переводчик старался придерживаться терминологии перевода монографии У.Клоксина и К.Меллиша.
А.Н. Волков
Содержание
Предисловие к русскому изданию ....................5
Предисловие ................................8
Глава 1. Введение в Пролог........................9
Глава 2. Синтаксис и унификация ..................16
2.1. Синтаксис...........................17
2.2. Унификация .........................24
Глава 3. Арифметические выражения ................26
3.1. Введение ...........................26
3.2. Арифметические выражения................27
3.3. Арифметические операторы ................28
3.4. Вычисление арифметических выражений ........29
3.5. Сравнение результатов арифметических выражений . . 30
Глава 4. Рекурсия ............................30
4.1. Стратегия «разделяй и властвуй» .............31
4.2. Восходящая стратегия....................36
4.3. Рекурсия и эффективность.................38
Глава 5. Структуры данных...................... 43
5.1. Списки.............................43
5.2. Бинарные деревья ......................52
Глава 6. Операторы ...........................57
6.1. Операторы и структуры...................57
6.2. Позиция операторов.....................59
1 Af\
6.3. Приоритет операторов....................59
6.4. Ассоциативность операторов................59
6.5. Спецификаторы .......................60
6.6. Операторы объявления ...................62
6.7. Пример: вычисление многочленов.............63
6.8. Системные операторы....................64
Глава 7. Механизм возврата и процедурная семантика ......65
7.1. Механизм возврата .....................65
7.2. Пример: задача поиска пути в лабиринте.........66
7.3. Обработка фактов с помощью механизма возврата ... 72
7.4. Предикат repeat .......................73
7.5. Декларативная и процедурная семантики ........74
7.6. Вопросы эффективности ..................75
Глава 8. Отсечение...........................77
8.1. Почему используют отсечение ?..............77
8.2. Использование отсечения................. . 79
8.3. Ловушки отсечения .....................83
Глава 9. Встроенные предикаты....................84
9.1. Встроенные предикаты ...................84
9.2. Обновление базы данных Пролога.............85
9.3. Особенности ввода и вывода ................88
9.4. Обработка файлов ......................82
Глава 10. Модули. Пример разработки системы...........95
10.1. Модули............................95
10.2. Пример разработки системы: деревья решений.....96
Глава 11. Отладка...........................НО
11.1. Трассировка........................111
11.2. Установка контрольных точек .............114
Приложения ..............................118
Приложение А. Синтаксис ......................118
А. 1. Синтаксис программ ...................118
А.2. Синтаксис термов..................... 119
А.З. Синтаксис списка ..................... 120
А.4. Синтаксис комментария ................. 120
А.5. Слова и символы, зарезервированные
системой Пролог ........................ 120
Приложение Б. Словарь терминов.................. 122
Приложение В. Встроенные операторы............... 128
Приложение Г. Библиография .................... 134
Предметный указатель ........................ 135
Указатель операторов и процедур.................. 139

Цена: 100руб.

Назад

Заказ

На главную страницу

Hosted by uCoz