Иванова Г. С., Тихонов Ю. В. И21 Введение в язык МПролог: Практическое пособие дл программистов. — М.: Изд-во МГТУ, 1990.— 152 с., ил. ISBN 5-7038-0105-2 МПролог — язык компьютеров пятого поколения, используемый для решения задач искусственного интеллекта: создания систем обработки знаний, экспертных систем для различных прикладных областей и т.. д. МПролог — одна из наиболее развитых версий языка, реализованная для ЭВМ различных типов: ЕС ЭВМ, СМ ЭВМ и персональных ЭВМ, совместимых с IBM PC. Дано описание теоретических основ логического программирования, в том числе классификация основных задач искусственного интеллекта, приведены основные положения математической логики, а также основные критерии, по которым отличают различные версии языка Пролог, в том числе МПролог. Подробно описаны основные положения языка МПролог, рассмотрены наиболее характерные приемы программирования на МПро-логе, приведено много примеров. Может быть использовано как учебное пособие, а также для профессиональных программистов и специалистов по вычислительной технике. Ил. 42. Табл. 13. Библиогр. 18 назв. Рецензенты: В. И. Пильщиков, А. Н. Иванютин
ОГЛАВЛЕНИЕ
Предисловие................4
Введение ................. 5
Глава 1. Теоретические основы логического программирования ... 7
§ 1. Задачи искусственного интеллекта ........ 7
§ 2. Основы математической логики. Логика высказываний . . .10
§ 3. Логика предикатов первого порядка.......'6
§ 4. Метод резолюций.............23
§ 5. Логическое программирование.........33
§ 6. Язык Пролог..............35
i лава 2. Основы программирования на языке МПролог . ... 49
§ 1. Основные понятия языка...........49
§ 2. Описание синтаксиса языка..........51
§ 3. Механизм выполнения программы . .......55
§ 4. Разработка простейшей программы........59
§ 5. Структуры данных............65
§ 6. Списки...............67
§ 7. Рекурсия...............71
§ 8. Рекурсивная обработка списков ......... 78
Глава 3. Программирование с использованием встроенных предикатов
МПролога..............86
§ 1. Система встроенных предикатов......... 86
§ 2. Программирование арифметических операций.....87
§ 3. Организация ввода — вывода..........93
§ 4. Встроенные предикаты обработки данных......102
Глава 4. Управление процессом выполнения программы . . . .108
§ 1. Встроенные предикаты системы МПролог......108
§ 2. Отсечение альтернатив............109
§ 3. Программирование отрицания.........114
§ 4. Предотвращение зацикливания процесса поиска решений . . 115 § 5. Организация циклических процессов........119
'лава 5. Более сложные элементы языка МПролог......125
§ 1. Динамическое программирование........125
§ 2. Модульное программирование.........132
Приложение 1. Система поддержки разработки программ PDSS на языке МПролог. Ее основные функции .... 139 Приложение 2. Описание встроенных предикатов системы
МПролог...............144
Рекомендуемая литература..........151
ПРЕДИСЛОВИЕ
Эта книга предназначена всем, кто хочет научиться составлять прогряммь на языке логического программирования МПролог, и написана с таким расче том, что не требует знания других языков программирования.
Пособие написано на основе курса лекций, читаемых с 1988 г. в МГТУ им. Н. Э. Баумана студентам шестого курса факультета информатики и сие-•тем управления, а также слушателям Межотраслевого института повышений жвалификации при МГТУ им. Н. Э. Баумана. Задачи взяты из лабораторный .работ по курсу «Логическое программирование». 1
В настоящее время имеется всего одна книга на русском языке, в кото-1 рой подробно описаны язык логического программирования МПролог и сиен тема МПролог. Поэтому авторы данной книги ставили перед собой задачу^ .восполнить существующий в литературе пробел.
Авторы ставили перед собой следующие цели:
воздать пособие по языку МПролог для широкого круга читателей: студентов, аспирантов, слушателей факультетов повышения квалификации, инженеров, специалистов по вычислительной технике и программированию, а также для всех желающих освоить программирование на языке МПролог;
обсудить наиболее характерные приемы программирования на языке МПролог;
предостапить программистам подробную информацию по системе МПролог.
Материал книги распределен следующим образом. Во введении сделана попытка показать, что МПролог — одна из наиболее перспективных версий языков логического программирования.
В главе 1 изложены теоретические основы логического программирования, рассмотрены задачи искусственного интеллекта, дано краткое введение в математическую логику, приведены основные принципы логического программи-1 рования, описан язык Пролог.
Главы 2... 5 посвящены основам программирования на языке МПролог.! Изложение сопровождается большим числом примеров программ, написанных на языке МПролог. Большое внимание уделено вопросам организации рекурсий, реализации самоизменяющихся программ, так называемому динамическому программированию, модульному программированию, программированию ариф метических вычислений, организации ввода/вывода, использованию предика тов отсечения, позволяющих эффективно влиять на ход вычислительного про цесса.
В приложении приведен полный список встроенных предикатов языка МПролог, описаны функции системы поддержки разработки программ, необходимых для ввода и выполнения приведенных в книге программ, а также для ввода, редактирования, отладки и выполнения программ, разработанных читателями самостоятельно.
Авторы выражают глубокую благодарность доценту кафедры алгоритми ческих языков факультета вычислительной математики и кибернетики Москов ского государственного университета канд. физ.-мат. наук В. Н. Пилыцикову за ценные замечания, сделанные им при рецензировании рукописи.
Если после прочтения настоящей книги у Вас возникло желание начат! работу с системой логического программирования МПролог, Вы можете офи циально получить систему через Институт проблем информатики АН СССР (117900, Москва, В-334; Вавилова ул., 30/6, тел. 930-06-16, 1.35-98-14 Тихо нов Ю. В.).
Особенности программирования на языке МПролог и тонкости работы с системой МПролог Вам помогут освоить опытные преподавател! МГТУ им. Н. Э. Баумана (107005, Москва, 2-я Бауманская ул., 5, тел 263-63-88, Петренко Е. О.). 1
Все отзывы, замечания и пожелания по этой книге просим направлять пя адресу: 107005, Москва, 2-я Бауманская ул., 5, Издательство МГТУ. I
ВВЕДЕНИЕ
Пролог — язык логического программирования, предназначенный для решения широкого класса задач: создания систем обработки знаний и интеллектуальных баз данных; разработки инструментальных средств построения экспертных систем; создания экспертных систем для различных прикладных областей, включая медицину, химию, биологию; разработки и использования систем автоматизации проектирования, компиляторов и т. п.
Название языка Пролог образовано из слов ПРОграммирова-ние Логического, или Программирование в терминах ЛОГики (PROLOG—PROgramming in LOGic).
Пролог принципиально отличается от традиционных языков программирования тем, что в нем требуется описывать логическую модель предметной области в терминах объектов и отношений между ними без подробного описания алгоритма решения задачи.
Программа на языке Пролог состоит из множества утверждений, каждое из которых является либо фактом из заданной предметной области, либо правилом, указывающим, как решение связано с заданными фактами или каким образом его можно получить из заданных фактов.
Теоретической основой Пролога стали идеи логического программирования, предложенные Р. Ковальским. Первый интерпретатор Пролога был создан в начале 70-х гг. В течение 70-х гг. этим языком интересовались специалисты довольно узкого круга. После опубликования в 1981 г. японского проекта компьютеров пятого поколения, где Пролог был выбран в качестве базового языка, этот язык получил очень широкое распространение.
Этому способствовали и другие причины:
1) появились экспертные системы, в которых основная работа состоит в выполнении логического вывода на основании фактов и правил, относящихся к области данной задачи. Пролог, будучи языком, основанным на логике, считается для этого наиболее подходящим;
2) компьютеры все чаще используют для решения неарифметических задач, для которых операции и структуры управления существенно отличаются от операций и структур, созданных главным образом для реализации численных алгоритмов;


Hosted by uCoz