Математика | ||||
Ин Ц., Соломон Д. И57 Использование Турбо-Пролога: Пер. с англ. - М.: Мир, 1993.-608 с., ил. ISBN 5-03-001181-1 Книга американских авторов представляет собой руководство по применению системы программирования Турбо-Пролог. В качестве примеров рассматриваются разработка естественно-языковых и экспертных систем, многооконный интерфейс с пользователем, машинная графика. Система программирования Турбо-Пролог предназначена для работы в операционной среде MS DOS или PC DOS на персональных ЭВМ PC (XT, AT), EC 1841, ЕС 1842. ЕС 1845 и т. п. Дм программистов, в том числе начинающих. | ||||
Предисловие редактора перевода Эффективность усилий математиков и программистов, направленных на построение систем искусственного интеллекта, во многом определяется доступными инструментальными средствами, в частности языками программирования, используемыми для составления "думающих" программ. Не вдаваясь в дискуссию о том, "Может ли машина мыслить ?", "Что есть мысль и мышление ?", отметим одно безусловно привлекательное с практической точки зрения свойство систем искусственного -интеллекта, которое им настойчиво стремятся придать разработчики. Речь идет о возможности системы автоматически находить последовательность своих действий (вычислений) для получения ответов на вопросы пользователя, исходя из некоторой исходной информации, являющейся формальным описанием моделируемой реальности. Ведущая роль в воплощении этой идеи принадлежит языку программирования Пролог. Два момента вызывают особое беспокойство программистов-практиков, работающих с этим языком. Первый из них - эффективность получающихся программ, осуществляющих в процессе достижения цели (ответа на поставленный вопрос) перебор большого числа логических следствий из исходных данных. Второй - трудность усвоения языка начинающими пользователями. Пролог относится к так называемым декларативным языкам, требующим от автора умения составить формальное описание ситуации, пользуясь понятиями объектов различных типов и отношений между ними. Программа, составленная на этом языке, не содержит детального описания последовательности шагов, ведущих к результату. Это дело мощных внутренних процедур логического анализа, используемых в реализации языка. Как следствие, невелика предсказуемость поведения программы. В предлагаемой читателю книге детально излагается язык Турбо-Пролог (подмножество Пролога). Отмеченная выше неэффективность прологовских программ удачно преодолевается разработчиками фирмы Borland International. Отказавшись от некоторых возможностей стандартного языка, разработчики реализовали компилируемый вариант Пролога. При этом трансляция и выполнение программ заметно ускоряются. Методические трудности, связанные с обучением использованию Пролога начинающих программистов, успешно преодолеваются авторами на основе последовательного применения простого принципа - делай, как мы. Множест- во постепенно усложняющихся программ, упражнений для самостоятельного выполнения практически гарантирует (при наличии доступа к современной персональной ЭВМ) привитие читателю навыков программирования на своеобразном и красивом языке. Читатель, работающий с Прологом, познакомится с опытом реализации конкретных экспертных систем, с возможностью использования в системе Турбо-Пролог мощных графических средств персональных ЭВМ фирмы IBM, экранных окон, с реализацией общения с ЭВМ на упрощенном естественном языке. • Книга может быть использована как учебное пособие при подготовке специалистов в области искусственного интеллекта, информационно-поисковых систем. Перевод выполнен О .Л.Кондратьевым (Предисловие, гл. 1, 3, 5, 7, 9, И, приложения, индекс) и Д.Ю.Буланже (гл. 2, 4, 6, 8, 10, 12) при участии М.Е.Янковского. Б.Г. Сушков ОГЛАВЛЕНИЕ Предисловие редактора перевода ...................................................... 5 Благодарности.........................................................t.............. 7 Предисловие ......................................................................... 8 Для чего нужен Турбо-Пролог? ........................................................ 8 Что такое Пролог? ................................................................... 9 Турбо-Пролог и другие языки программирования........................................ 10 Кому предназначена эта книга? ....................................................... 10 Что включено в настоящую книгу? ..................................................... 11 Глава 1. Начала работы на Турбо-Прологе............................................. 14 1.1. Введение....................................................................... 14 1.2. Пакет системы Турбо-Пролог ..................................................... 14 1.2.1. Турбо-Пролог версии 1.1..................................................... 16 1.2.2. Установка системы Турбо-Пролог версии 1.1 ................................... 16 1.3. Запуск Турбо-Пролога........................................................... 19 1.3.1. Главное меню системы Турбо-Пролог........................................... 21 1.3.2. Запуск на счет программы, написанной на Турбо-Прологе ....................... 22 1.3.3. "Добро пожаловать в систему Турбо-Пролог!" .................................. 24 1.3.4. Сохранение программного файла ............................................... 26 1.3.5. Просмотр каталога директории ................................................ 27 1.3.6. Загрузка и редактирование программного файла................................ 28 1.3.7. Печать файла................................................................ 31 1.4. Заключение ..................................................................... 31 Глава 2. Основные понятия языка Турбо-Пролог ......................................... 32 2.1. Введение ........................................................................ 32 2.2. Декларативные и императивные языки.............................................. 32 2.2.1. Логика предикатов............................................................. 33 2.2.2. Пролог и логика предикатов ........................... ........................ 36 2.3. Управление программой...........................................................38 2.3.1. Цели программы ............................................................... 39 2.3.2. Решение задачи............................................................... 40 2.3.3. Результат доказательства цели ................................................ 42 2.3.4. Связки и другие символы...................................................... 44 2.3.5. Цели и подцели ................................................................ 45 2.4. Внутренние подпрограммы унификации Турбо-Пролога ................................ 45 2.4.1. Представление данных при помощи фактов и правил .............................. 46 2.4.2. Обработка правил и фактов во время внутренней унификации ..................... 48 2.4.3. Откат........................................................................52 2.5. Заключение ............•.......................................................... 61 Глава 3. Основы программирования на Турбо-Прологе ................................... 62 3.1 Введение........................................................................ 62 3.2. Структура программ Турбо-Пролога .............................................. 62 3.2.1: Описание доменов и предикатов ............................................... 64 3.2.2. Правила образования имен в Турбо-Прологе .................................... 68 3.3. Предикаты и утверждения ........................................................ 69 3.3.1. Использование внешних и внутренних целей .................................... 71 3.3.2. Предикаты и утверждения разных арностей ..................................... 76 3.3.3. Использование правил в запросах............................................. 83 3.3.4. Простые базы данных ......................................................... 87 3.3.5. Отрицание ................................................................... 90 3.3.6. Использование составных объектов ............................................ 93 3.3.7. Использование альтернативных доменов ........................................ 103 3.4. Арифметика в Турбо-Прологе ..................................................... 111 3.5. Заключение ..................................................................... 114 Глава 4. Повторение и рекурсия ...................................................... 115 4.1. Введение ....................................................................... 115 4.2. Программирование повторяющихся операций ........................................ 115 4.3. Повторение и откат............................................................. 116 4.4. Методы повторения.............................................................. 119 4.4.1. Метод отката после неудачи ................................................... 119 4.4.2. Метод отсечения и отката..................................................... 128 4.4.3. Метод повтора, определяемый пользователем .................................... 135 4.5. Методы организации рекурсии .................................................... 139 4.5.1. Простая рекурсия............................................................. 139 4.5.2. Метод обобщенного правила рекурсии ........................................... 142 4.6. Заключение..................................................................... 152 Глава 5. Использование списков ...................................................... 153 5.1. Введение....................................................................... 153 5.2. Списки и Турбо-Пролог .......'................................................... 153 5.2.1. Атрибуты списка ............................................................. 154 5.2.2. Графическое представление списков........................................... 155 5.3. Применение списков в программе ................................................. 158 5.4. Использование метода с разделением списка на голову и хвост .................. 161 5.5. Различные операции над списками................................................ 166 5.5.1. Поиск элемента в списке ..................................................... 166 5.5.2. Деление списков ............................................................. 169 5.5.3. Присоединение списка ........................................................ 173 5.5.4. Сортировка списков .......................................................... 176 5.6. Компоновка данных в список ..................................................... 182 5.7. Заключение ..................................................................... 187 Глава 6. Использование строк ........................................................ 188 6.1. Введение....................................................................... 188 6.2. Множество символов Турбо-Пролога ............................................... 188 6.3. Ипольэование кодов ASCII для "записи" символов................................. 189 6.4. Присваивание переменным строковых значений ..................................... 189 6.5. Длина строки...............................................................--- 195 6.6. Конкатенация строк............................................................. 198 6.7. Создание подстрок .............................................................. 202 6.8. Преобразование данных.......................................................... 205 6.9. Преобразования, определяемые пользователем ..................................... 208 6.10. Создание символьных префиксов................................................. 211 6.11. Преобразование строк в список символов ........................................ 212 6.12. Специальные строки Турбо-Пролога .............................................. 216 6.13. Формирование атомов из строк .................................................. 220 6.14. Преобразование строк в списки атомов с функторами............................. 225 6.15. Заключение .................................................................... 228 Глава 7. Использование файлов на внешних носителях .................................. 230 7.1. Введение ....................................................................... 230 7.2. Конфигурация компьютера........................................................ 230 7.2.1. Физические и логические устройства .......................................... 231 7.2.2. Стандартная конфигурация устройств.......................................... 232 7.2.3. Расширенная конфигурация устройств .......................................... 237 7.3. Предикаты Турбо-Пролога для работы с файлами................................... 238 7.3.1. Описание файлового домена ................................................... 239 7.3.2. Запись в файл ................................................................ 239 7.3.3. Чтение из файла............................................................. 241 7.3.4. Модификация существующего файла ............................................. 241 7.3.5. Дозапись в конец уже существующего файла .........'........................... 242 7.4. Средства проектирования программ .............................................. 243 7.5. Использование предикатов для работы с файлами .................................. 245 7.5.1. Создание нового файла ..................................... .................. 245 7.5.2. Чтение из уже существующего файла ........................................... 247 7.5.3. Запись в файл данных, вводимых с клавиатуры ............ ..................... 250 7.5.4. Чтение файла на диске с последующей выдачей на экран и принтер ............. 254 7.5.5. Создание файла, содержащего символьную информацию ........................... 258 7.5.6. Считывание символов из файла ................................................ 262 7.6. "Дружественные пользователю" программы для обработки файлов ................. 264 7.6.1. Запись данных в файл ........................................................ 264 7.6.2. Чтение из_файла............................................................. 270 7.7. Дозапись данных в файл................................................'......... 274 7.8. Использование файлов прямого доступа ........................................... 278 7.8.1. Запись в файл прямого доступа ......................_......................... 279 7.8.2. Чтение из файла прямого доступа............................................. 283 7 .,9 Заключение.......................................................,.............. 286 Глава 8. Использование окон, графики, звука .,....................................... 288 8.1. Введение......................................................-................. 288 8.2. Использование предикатов для работы с окнами ................................... 289 8.2.1. Создание окон предикатом makewlndow .......................................... 289 8.2.2. Использование других предикатов для работы с окнами.......................... 295 8.3. Использование окон для ввода и вывода .......................................... 297 8.4. Программы, использующие окна................................................... 298 8.4.1. Вывод текста в окно.......................................................... 298 8.4.2. Создание нескольких окон .......................,............................. 300 8.4.3. Создание перекрывающихся окон ................................................ 306 8.4.4. Создание меню при помощи окон................................................ 307 8.5. Использование графики в программе.............................................. 311 8.5.1. Разрешающая способность изображения и режимы графического адаптера ........... 313 8.5.2. Предикат graphics ..................................................................................... 314 8.5.3. Предикат makewlndow и графический режим...........................'........... 316 8.5.4. Предикаты line и dot......................................................... 319 8.5.5. Сводка по графическим режимам и значениям параметров ......................... 320 8.6. Изображение объектов предикатами line и dot .................................... 321 8.6.1. Изображение окружности ....................................................... 322 8.6.2. Реализация простых изображений ,............---.............................. 323 8.7. Деловая графика ................................................................. 327 8.7.1. Линейный график.............................................................. 327 8.7.2. Простая столбиковая диаграмма..............................................,. 333 8.7.3. Круговая диаграмма........................................................... 336 8.8. Использование графики черепашки ................................................ 343 8.8.1. Предикаты графики черепашки .................................................. 344 8.8.2. Графические рисунки .......................................................... 346 8.8.3. Абстрактные рисунки. Движущаяся спираль ...................................... 349 8.9. Использование звука и музыки................................................... 351 8.9.1. Предикаты генерации звука.................................................... 351 8.9.2. Музыкальные фрагменты........................................................ 353 8.9.3. Несложная программа компьютерного обучения с музыкальными фрагментами ........ 353 8.10. Заключение .................................................................... 358 Глава 9. Создание динамических баз данных ........................................... 360 9.1 Введение..........................................'.............................. 360 9.2. Основные сведения о базах данных............................................... 361 Цена: 300руб. |
||||