Библиотека knigago >> Компьютеры: Разработка ПО >> Искусственный интеллект >> Программирование на языке Пролог


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1301, книга: Записки Шерлока Холмса
автор: Иван Сергеевич Кравцов

Фэнтези: прочее Книга "Записки Шерлока Холмса" Ивана Кравцова представляет собой смелую попытку объединить миры детектива Шерлока Холмса с миром фэнтези. Автор создает необычный и захватывающий сюжет, перенося легендарного сыщика в альтернативную вселенную, полную магии и мистических существ. История вращается вокруг Холмса и его верного помощника, доктора Ватсона, которых приглашают расследовать таинственное дело. Они оказываются в городе Артания, где сталкиваются с загадочными...

У Клоксин , К Меллиш - Программирование на языке Пролог

Программирование на языке Пролог
Книга - Программирование на языке Пролог.  У Клоксин , К Меллиш  - прочитать полностью в библиотеке КнигаГо
Название:
Программирование на языке Пролог
У Клоксин , К Меллиш

Жанр:

Литература ХX века (эпоха Социальных революций), Советские издания, Искусственный интеллект, Prolog

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Программирование на языке Пролог"

Книга английских специалистов, содержащая описание основ логического программирования и особенностей языка Пролог – базового языка ЭВМ пятого поколения. Области применения этого языка связаны с разработкой экспертных систем, интеллектуальных баз данных, обработкой естественного языка, разработкой компиляторов ЭВМ. Книга полезна для первого ознакомления с языком Пролог.

Читаем онлайн "Программирование на языке Пролог". [Страница - 147]

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

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

Второй компонентой системы является консолидатор, который объединяет двоичные модули в выполняемую программу. Объединение может осуществляться по шагам. Это означает, что несколько двоичных модулей можно объединить в один новый двоичный модуль с внешним интерфейсом, заданным пользователем.

Третьей из указанных выше компонент системы является компилятор, который преобразует двоичные модули (порождаемые претранслятором), заменяя представление программы, необходимое для интерпретатора, на непосредственно исполняемый машинный код. Система МПролог допускает объединение в готовую программу интерпретируемых и откомпилированных модулей.

Различные ограничения
Целые числа могут изменяться в диапазоне от -8 388 607 до 8 388 607. Действительные числа не предусмотрены. Приоритеты операторов могут изменяться от -3000 до 3000.

Дополнительные встроенные предикаты
В МПрологе предусмотрены некоторые дополнительные встроенные предикаты. Например, допускающие повторное согласование при возвратном ходе предикаты ввода, разнообразные предикаты вывода, работы со строками, с базой данных, а также предикаты обработки особых ситуаций.

Два основных предиката ввода insymb(X) и interm(X) допускают повторное согласование при возврате. Это означает, что при возвратном ходе выполненные ими действия «отменяются». Например, если первый вводимый символ не совпадает с аааа, то вопрос


? insymb(aaaa).

не согласуется, причем в этом случае аааа сохраняется во входном потоке и может быть считан последующими предикатами ввода[21].


Эти предикаты обеспечивают дополнительные возможности для задания грамматических правил. Например, правила, приведенные в разд. 9.3, могут быть непосредственно преобразованы в следующие предикаты:


предложение:- группа_существительного, группа_глагола.

группа_существительного:- определитель, существительное.

группа_глагола:- глагол.

группа_глагола:- глагол, группа_существительного.

определитель:- insymb(the).

существительное:- insymb(man).

существительное:- insymb(apple).

глагол:- insymb(eats).

глагол:- insymb(sings).


Приведенный выше предикат предложение завершается успешно, если из входного потока поступает предложение, удовлетворяющее заданной грамматике. Заметим, что обработка синтаксических ошибок и команда '=' реализуются на основе предикатов ввода, допускающих повторное согласование при возврате. Предикаты для работы с базой данных в МПрологе также имеют версии, допускающие повторное согласование. Например,


fdelclause(EXPR)


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


fsupclause(EXPR)


только подавляет его. Это означает, что при возвратном ходе это утверждение возвращается на свое место. С помощью этого предиката можно, например, по-другому определить предикат перейти из разд. 7.2:


перейти(X,X).

перейти(X,X):- в_след_комн(Х,Z), перейти(Z,Y).

в_след_комн(Х,Z):- fsupclause(d(X,Z)); fsupclause(d(Z,X)).


Здесь нам уже не нужен вспомогательный третий аргумент (содержащий список комнат, где мы уже бывали). Вместо этого, чтобы быть уверенным в том, что в каждую дверь мы входим только один раз, мы просто подавляем на период поиска факты, соответствующие дверям, через которые мы уже прошли.

Имеется большой набор предикатов вывода, позволяющий осуществлять разнообразные виды форматированного вывода. Например, можно задавать границы строк и предельную глубину вывода. Задание глубины вывода полезно при выводе очень сложных термов (или даже бесконечных термов поскольку в МПрологе соответствующих проверок не делается), когда нас интересует только их общая структура. Задание глубины вывода равной N означает, что фактически выводиться будут только первые N уровней терма, а подтермы уровня N+1 будут представлены как (…).

Предикаты обработки особых --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.