Автор работы: Пользователь скрыл имя, 11 Января 2011 в 14:09, курсовая работа
Почти все современные компьютеры основаны на ранних, разработанных в 40-х годах идеях фон Неймана и его коллег. Машина фон Неймана содержит большую память и процессор, снабженный локальной памятью, ячейки которой называются регистрами. Процессор может загружать данные из памяти в регистры, выполнять арифметические и логические операции над содержимым регистров и отсылать значения регистров в память. Программа машины фон Неймана представляет собой последовательность команд выполнения перечисленных операций вместе с дополнительным множеством команд управления, влияющих на выбор очередной команды.
Введение 3
Глава 1. Что же представляют собой языки логического программирования? 6
1.1. Чистый Полог. 6
1.2. Сравнение с традиционными языками программирования. 8
1.3 Программирование на чистом Прологе. 9
1.3.1. Порядок правил. 10
1.3.2. Проблема завершения программ. 11
1.3.3. Порядок целей. 11
1.3.4. Избыточные решения. 12
1.4.Практические рекомендации. 13
1.4.1 Эффективность программ на Прологе. 13
1.4.2. Разработка программ. 15
1.5. Другие языки логического программирования. 18
1.5.1 Язык логического программирования KL0. 18
1.5.2 Типы данных KL0. 19
1.5.3. Язык программирования ShapeUp. 20
Глава 2. Lisp – язык функционального программирования. 21
2.1. Лисп в истории программирования. 22
2.2. Логическое программирование на Лиспе. 23
Заключение. 25
Список литературы 26
Так как возможное в Прологе реляционное и логическое программирование завоёвывало всё большее количество сторонников, многие Лисп-системы стали оснащаться встроенным интерпретатором Пролога. Основанное на логике программирование с помощью правил в будущем может таким же образом войти в Лисп, как, например, вошло объектно-ориентированное программирование Смолтолка.
Логическое программирование хорошо подходит для решения проблем, для работы с формальными и естественными языками, для баз данных, запросных и экспертных систем и для других дискретных невычислительных задач. Пользователя привлекает ясность, содержательность программ и их нетехнический характер. В программе не нужно описывать, каким образом решается задача. Достаточно описания самой задачи и того, что желательно узнать.
Однако логическое программирование с использованием лишь хорновских предложений было бы слишком узконаправленным. Поэтому, кроме этого, используются другие методы программирования. Некоторые задачи по своему характеру процедурные, и программировать их чисто декларативными языками непрактично. Нужны более развитые типы данных. Пролог и логическое программирование непрерывно расширяются, охватывая все новые методы программирования и формы изображения именно в направлении процедурного и объектно-ориентированного программирования, а также в направлении параллельных вычислений.