My-library.info
Все категории

У Клоксин - ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ

На электронном книжном портале my-library.info можно читать бесплатно книги онлайн без регистрации, в том числе У Клоксин - ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ. Жанр: Программирование издательство неизвестно, год 2004. В онлайн доступе вы получите полную версию книги с кратким содержанием для ознакомления, сможете читать аннотацию к книге (предисловие), увидеть рецензии тех, кто произведение уже прочитал и их экспертное мнение о прочитанном.
Кроме того, в библиотеке онлайн my-library.info вы найдете много новинок, которые заслуживают вашего внимания.

Название:
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ
Автор
Издательство:
неизвестно
ISBN:
нет данных
Год:
неизвестен
Дата добавления:
17 сентябрь 2019
Количество просмотров:
342
Читать онлайн
У Клоксин - ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ

У Клоксин - ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ краткое содержание

У Клоксин - ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ - описание и краткое содержание, автор У Клоксин, читайте бесплатно онлайн на сайте электронной библиотеки My-Library.Info
Книга английских специалистов, содержащая описание основ логического программирования и особенностей языка Пролог – базового языка ЭВМ пятого поколения. Области применения этого языка связаны с разработкой экспертных систем, интеллектуальных баз данных, обработкой естественного языка, разработкой компиляторов ЭВМ. Книга полезна для первого ознакомления с языком Пролог.

ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ читать онлайн бесплатно

ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ - читать книгу онлайн бесплатно, автор У Клоксин

foo((a,b,c))


Правило относительно операторов высокого приоритета касается только нескольких операторов, таких как ':-' и ';'. Оно означает, что запись вида:


?- retract(parent(A,B):- father(A,B)).


является синтаксически неправильной в смысле Пролога-10. Чтобы сделать ее правильной, нужно добавить пару скобок.

В том случае, если вы работаете с терминалом или с операционной системой, в которых не предусмотрено одновременного использования прописных и строчных букв, можно использовать имеющийся в Прологе-10 альтернативный вариант синтаксиса. В этом синтаксисе отличие переменных от атомов состоит в том, что имена переменных начинаются с литеры подчеркивания «_». Для перехода на этот вариант синтаксиса предусмотрен встроенный предикат nolc (нет строчных букв). Другой встроенный предикат, (строчные буквы), позволяет снова переключиться на нормальный синтаксис.

И еще одно маленькое замечание. Функтор '.' (с двумя аргументами) в Прологе-10 не является заранее определенным оператором. При желании вы можете определить его сами, хотя в этом нет необходимости, если при работе со списками вы всегда пользуетесь специальным способом задания списков.

Различные ограничения

В Прологе-10 предусмотрены ограничения, с которыми пользователь вряд ли столкнется на практике. Приоритеты операторов должны быть в диапазоне от 1 до 1200. Целые числа должны находиться в диапазоне от -131 072 до 131 071, однако в ходе вычислений целых выражений промежуточные результаты могут выходить за эти границы. Вещественные числа (с плавающей точкой) не предусмотрены.

Возможности окружения

В Прологе-10 предусмотрена очень полезная возможность протоколирования сеанса работы. При обычной работе с Прологом система фиксирует в файле plolog.log на диске почти все, что появляется на терминале. После того как работа закончена, вы можете просмотреть этот файл и точно определить, что происходило во время сеанса работы. Файл prolog.log содержит полезную информацию о том, что и когда делала ваша программа, и какие изменения вы в ней делали. На тот случай, если вы не хотите протоколировать все подряд, предусмотрены встроенные предикаты, обеспечивающие включение и выключение протоколирования.

В Прологе-10 можно прервать выполнение программы путем одновременного ввода комбинации символов «CONTROL С». Система отвечает приглашением и ждет от вас указаний о том, какое действие нужно выполнить далее. Набор допустимых команд включает break, continue (продолжить выполнение программы), exit (выход из Пролога), trace и notrace. Последние две команды вызывают продолжение выполнения программы после изменения вида или объема трассировки. Команда break позволяет приостановить выполнение текущей программы и предоставляет вам возможность работы с новой «копией» Пролог-системы. После выхода из команды break приостановленная программа продолжит свое выполнение.

В Прологе-10 в качестве литеры, играющей роль признака конца файла используется комбинация «CONTROL Z» (клавиша CONTROL одновременно с Z). Ее ввод, в зависимости от ситуации, в которой вы находитесь, приводит к выходу из Пролога, к завершению режима break или к завершению выполнения предиката consult. Встроенный предикат read в случае выхода на конец файла сравнивает свой аргумент с атомом end of file.

В Прологе-10 предусмотрены разнообразные средства, помогающие экономить время при повторном считывании программы. Можно сохранить «состояние» Пролог-системы, включая текущее состояние ее базы данных, в файле на диске, причем таким образом, что восстановление этого состояния происходит значительно быстрее, нежели чтение программы и приведение ее в то же самое состояние. Кроме того, в начале каждого сеанса работы, прежде чем начать ввод с терминала, Пролог-10 автоматически читает любую информацию, которая записана в файле plolog.ini.

Если во время выполнения Пролога-10 фиксируется ошибка, то система выводит сообщение, говорящее о том, что произошло. Большинство ошибок вызывают просто неудачу в согласовании тех целей, которые их породили, так что ваша программа может продолжать выполнение. Однако некоторые ошибки более серьезны. В этих случаях система прекращает выполнение всех имеющихся в данный момент программ и просит ввести очередной вопрос.

Компиляция

В Прологе-10 предусмотрена возможность выборочной компиляции некоторых из ваших утверждений, что позволяет значительно увеличить эффективность программ по времени выполнения и занимаемой памяти. Для этого имеется встроенный предикат, который действует подобно предикату consult, с той лишь разницей, что утверждения из файла не интерпретируются, а компилируются. Эффективность выполнения откомпилированных утверждений может быть увеличена за счет использования так называемых описаний режима, которые позволяют указать, как будут использованы данные утверждения (какие аргументы будут конкретизированы в различных ситуациях). Существуют определенные ограничения на пригодность утверждений для компиляции. Кроме того, системе необходимо задать некоторые другие описания, чтобы она смогла должным образом выполнять смесь интерпретируемых и откомпилированных утверждений.

Различия во встроенных предикатах

В Прологе-10 предусмотрены все встроенные предикаты, о которых говорилось в этой книге. Кроме того, он нормально обрабатывает грамматические правила, когда они встречаются в обычном consult. В данном разделе рассматриваются некоторые отличия от приведенных описаний.

Действие предиката display всегда состоит в выдаче аргументов этого предиката на терминал, а не в текущий файл вывода, как было описано.

При рассмотрении арифметических выражений мы говорили, что арифметическое выражение вычисляется только тогда, когда оно задано в качестве второго аргумента предиката is. Во всех других случаях структура вида '24-3' просто обозначает саму себя. В Прологе-10 это не так. Там вычисляются и арифметические выражения, заданные как аргументы других предикатов. Примером этого служат операторы отношения '‹', '=‹' и т. д., а также предикат put. Это означает, что приводимый ниже пример в Прологе-10 будет работать, а в нашем базовом Прологе выдаст ошибку или приведет к неудаче в согласовании цели.


?- 2+4‹12*(2+8).

yes


Еще одна особенность. Структура, представляющая собой список, состоящий из одного числа, рассматривается как арифметическое выражение, значением которого является число. Иными словами в Прологе-10 имеем:


?- X is [25].

X = 25

yes


Благодаря такой комбинации возможностей, вывод одиночных литер может быть задан в мнемоническом виде, например:


?- put("a"), put("b").

ab

yes


(не забывайте, что "а" – это список, состоящий из одного числового кода, соответствующего первой строчной букве алфавита).

Синтаксис отрицания. Предикат с именем not не предусмотрен, но вместо него используется инфиксный оператор '+' Отсутствует оператор «не равно» ('=').

Переменные как целевые утверждения. На самом деле это скорее вопрос синтаксиса, чем чего бы то ни было другого. Мы уже видели, как с помощью предиката call можно вызвать целевое утверждение, соответствующее текущему значению переменной Пролога. В Прологе-10 предусмотрен другой способ осуществления этого. Вместо того чтобы вставлять утверждение-цель вида

…, call(X),…

достаточно поставить на место цели саму эту переменную:

…, X,…

При этом использование варианта с call также возможно. Более того, при применении к такому утверждению asserta или assertz система преобразует цель X в цель call(X).

Задание аргументов для retract. Из-за трудностей, связанных с использованием переменных в качестве целей, в Прологе-10 существуют отличия в том, как должны задаваться тела утверждений в предикате retract. Трудность заключается в том, что когда мы задаем вопрос


?- retract((mother(A,B):- С)).


это может быть истолковано или как просьба об удалении утверждения, имеющего конкретный вид:


mother(A,B):- С.


где в теле утверждения переменная обозначает цель или как просьба об удалении утверждения для предиката mother с любым телом, как, например:


mother(X,Y):- parent(X,Y), female(Y).


Для устранения возможной двусмысленности, в подобных случаях Пролог-10 всегда начинает с замены неконкретизированных переменных, обозначающих одиночные или множественные целевые утверждения в аргументах для retract соответствующими структурами с функтором call. Таким образом, вопрос


У Клоксин читать все книги автора по порядку

У Клоксин - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки My-Library.Info.


ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ отзывы

Отзывы читателей о книге ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ, автор: У Клоксин. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.