Реферат Курсовая Конспект
Логическое программирование на Лиспе - раздел Программирование, Обзор языков логического программирования Логическое Программирование На Лиспе. Лисповские Функции, Как И Написанные На...
|
Логическое программирование на Лиспе. Лисповские функции, как и написанные на традиционных языках программы, обрабатывают данные в порядке, задаваемом описанием алгоритма, несмотря на то, что эту последовательность можно в Лиспе отобразить весьма гибкими и общими формами.
Такие языки назовм процедурными. В процедурных языках и формализмах программирование сводиться к разработке алгоритма, выполняющего действия.
В логических языках алгоритмы в таком смысле не используются. Если функциональные и операторные языки описывают, каким образом решается некоторая задача, то в логических языках для е решения достаточно точного логического описания. Языки, в которых решение задачи получают из описания структуры и условий задачи, называют декларативными. Чтобы в декларативном языке можно было выполнять разумные вычисления, для него наряду с декларативным смыслом определяется интерпретация в виде действий, или процедурная семантика. При необходимости добиться от Лиспа возможности логического программирования необходимо запрограммировать алгоритм доказательства.
Построим такой алгоритм доказательства. Для этого доказываемый в настоящий момент предикат-теорему назовм целью. Цель можно доказать следующим алгоритмом 1. Найти для доказательства цели первое предложение, значение которого унифицируется с целью. 2. Если предложение с таким заключением не найдено, то доказательство не удалось.
Если предложение найдено и его тело пусто, то цель доказана. Если у предложения не пустое тело, то надо доказать его предикаты в качестве новых целей рекурсивно слева направо. 3. Если алгоритм зашл в тупик, т.е. доказательство не удалось, то надо вернуться backtrack в предыдущее место, где можно выбрать другую цель если такая имеется и продолжить доказательство. Подбор связей переменных основан на методе проб и ошибок и на поиске. Доказываемый в настоящий момент предикат пытаются унифицировать первым возможным способом.
Если решение окажется неверным, т.е. некоторый предикат позже не удастся унифицировать, то происходит возврат к предыдущей унификации, выбирается следующая из ещ имеющихся возможностей, и делается попытка унифицировать оставшиеся предикаты другим способом. Реализовав описанный алгоритм на Лиспе можно добиться возможности логического программирования на этом языке.
Так как возможное в Прологе реляционное и логическое программирование завовывало вс большее количество сторонников, многие Лисп-системы стали оснащаться встроенным интерпретатором Пролога. Основанное на логике программирование с помощью правил в будущем может таким же образом войти в Лисп, как, например, вошло объектно-ориентированное программирование Смолтолка. 4. Заключение. Логическое программирование хорошо подходит для решения проблем, для работы с формальными и естественными языками, для баз данных, запросных и экспертных систем и для других дискретных невычислительных задач.
Пользователя привлекает ясность, содержательность программ и их нетехнический характер. В программе не нужно описывать, каким образом решается задача. Достаточно описания самой задачи и того, что желательно узнать. Однако логическое программирование с использованием лишь хорновских предложений было бы слишком узконаправленным. Поэтому, кроме этого, используются другие методы программирования.
Некоторые задачи по своему характеру процедурные, и программировать их чисто декларативными языками непрактично. Нужны более развитые типы данных. Пролог и логическое программирование непрерывно расширяются, охватывая все новые методы программирования и формы изображения именно в направлении процедурного и объектно-ориентированного программирования, а также в направлении параллельных вычислений.
– Конец работы –
Эта тема принадлежит разделу:
Машина фон Неймана содержит большую память и процессор, снабженный локальной памятью, ячейки которой называются регистрами. Процессор может загружать данные из памяти в регистры, выполнять… Хотя компьютеры предназначены для использования людьми, возникающие при их создании трудности были столь значительны,…
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Логическое программирование на Лиспе
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов