ВУЗ:
Составители:
Рубрика:
3
ОГЛАВЛЕНИЕ
Введение ......................................................................................................... 4
1. История Пролога .................................................................................... 10
2. Синтаксис и семантика Пролог-программ........................................ 13
2.1. Объекты данных............................................................................... 13
2.2. Декларативный смысл Пролог-программ...................................... 14
2.3. Основные определения.................................................................... 15
3. Практическое программирование на Прологе ................................. 17
3.1. Структура Пролог-программы........................................................ 18
3.2. Свободные и связанные переменные............................................. 20
3.3. Внутренняя БД Пролога.................................................................. 21
3.4. Обработка условий и организация циклов в Прологе .................. 23
3.4.1. Обработка условия................................................................. 23
3.4.2. Использование предиката типа repeat .................................. 24
3.5. Списки
в Прологе ............................................................................ 26
3.5.1. Примеры списков ................................................................... 26
3.5.2. Разделение списков на "голову" и "хвост"........................... 26
3.5.3. Некоторые полезные программы для работы
со списками ................................................................................................... 28
3.6. Ввод и вывод .................................................................................... 30
3.6.1. Файловая система................................................................... 30
3.6.2. Операции с именами файлов................................................. 32
3.6.3. Чтение и запись ...................................................................... 33
3.7. Строки и функции работы со строками ......................................... 34
4. Простенькая экспертная система........................................................ 40
5. Базовые понятия и термины Пролога................................................ 51
5.1. Объекты
............................................................................................ 51
5.2. Внутренние дела Пролога ............................................................... 55
5.3. Что такое шаблоны? ........................................................................ 55
5.4. Управление поиском........................................................................ 56
Заключение.................................................................................................. 58
Контрольные вопросы и задания ............................................................ 59
Список используемой литературы.......................................................... 63
4
Введение
В средние века знание латинского и грече-
ского языков являлось существенной частью об-
разования любого ученого. Ученый, владеющий
только одним языком, неизбежно чувствовал се-
бя неполноценным, поскольку он был лишен той
полноты восприятия, которая возникает благо-
даря возможности посмотреть на мир сразу с
двух точек зрения. Таким же неполноценным
ощущает себя сегодняшний исследователь в об-
ласти искусственного интеллекта, если он не об-
ладает основательным знакомством как с Лис-
пом, так и с Прологом – этими двумя основопо-
лагающими языками искусственного интеллекта,
без знания которых невозможен более широкий
взгляд на предмет исследования.
Иван Братко
Логическое программирование базируется
на убеждении, что не человека надо обучать
мышлению в терминах операций компьютера…
а компьютер должен выполнять инструкции,
свойственные человеку.
Леон Стерлинг, Эхуд Шапиро
Эволюция языков программирования – это движение от
языков императивных (как делать) к языкам декларативным (что
делать). Или иначе – от программирования в инструкциях компь-
ютера к ПРОграммированию в ЛОГике. Отсюда происходит на-
звание языка – ПроЛог, к изучению которого мы и приступаем.
Для иллюстрации важнейших черт Пролога воспользуемся
примером Братко [1], в котором задается
вопрос базе знаний: «Кто
у нас темный и большой?» (Номера перед фактами не кодируются.)
Программа:
1. большой(медведь).
2. большой(слон).
3. маленький(кот).
4. коричневый(медведь).
5. черный(кот).
6. серый(слон).
ОГЛАВЛЕНИЕ Введение Введение ......................................................................................................... 4 В средние века знание латинского и грече- 1. История Пролога .................................................................................... 10 ского языков являлось существенной частью об- разования любого ученого. Ученый, владеющий 2. Синтаксис и семантика Пролог-программ........................................ 13 только одним языком, неизбежно чувствовал се- 2.1. Объекты данных............................................................................... 13 бя неполноценным, поскольку он был лишен той 2.2. Декларативный смысл Пролог-программ...................................... 14 полноты восприятия, которая возникает благо- 2.3. Основные определения.................................................................... 15 даря возможности посмотреть на мир сразу с 3. Практическое программирование на Прологе ................................. 17 двух точек зрения. Таким же неполноценным 3.1. Структура Пролог-программы........................................................ 18 ощущает себя сегодняшний исследователь в об- 3.2. Свободные и связанные переменные ............................................. 20 ласти искусственного интеллекта, если он не об- 3.3. Внутренняя БД Пролога .................................................................. 21 ладает основательным знакомством как с Лис- 3.4. Обработка условий и организация циклов в Прологе .................. 23 пом, так и с Прологом – этими двумя основопо- лагающими языками искусственного интеллекта, 3.4.1. Обработка условия................................................................. 23 без знания которых невозможен более широкий 3.4.2. Использование предиката типа repeat .................................. 24 взгляд на предмет исследования. 3.5. Списки в Прологе ............................................................................ 26 Иван Братко 3.5.1. Примеры списков ................................................................... 26 3.5.2. Разделение списков на "голову" и "хвост"........................... 26 Логическое программирование базируется 3.5.3. Некоторые полезные программы для работы на убеждении, что не человека надо обучать со списками ................................................................................................... 28 мышлению в терминах операций компьютера… 3.6. Ввод и вывод .................................................................................... 30 а компьютер должен выполнять инструкции, 3.6.1. Файловая система................................................................... 30 свойственные человеку. 3.6.2. Операции с именами файлов................................................. 32 Леон Стерлинг, Эхуд Шапиро 3.6.3. Чтение и запись ...................................................................... 33 3.7. Строки и функции работы со строками ......................................... 34 Эволюция языков программирования – это движение от 4. Простенькая экспертная система........................................................ 40 языков императивных (как делать) к языкам декларативным (что 5. Базовые понятия и термины Пролога................................................ 51 делать). Или иначе – от программирования в инструкциях компь- 5.1. Объекты ............................................................................................ 51 ютера к ПРОграммированию в ЛОГике. Отсюда происходит на- 5.2. Внутренние дела Пролога ............................................................... 55 звание языка – ПроЛог, к изучению которого мы и приступаем. 5.3. Что такое шаблоны? ........................................................................ 55 Для иллюстрации важнейших черт Пролога воспользуемся 5.4. Управление поиском........................................................................ 56 Заключение.................................................................................................. 58 примером Братко [1], в котором задается вопрос базе знаний: «Кто Контрольные вопросы и задания ............................................................ 59 у нас темный и большой?» (Номера перед фактами не кодируются.) Список используемой литературы.......................................................... 63 Программа: 1. большой(медведь). 2. большой(слон). 3. маленький(кот). 4. коричневый(медведь). 5. черный(кот). 6. серый(слон). 3 4