Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Описание языка ПРОЛОГ.DOC
Скачиваний:
24
Добавлен:
12.03.2015
Размер:
159.23 Кб
Скачать
  • чтение и выполнения циклических команд

  • база данных, описывающая текущую среду

  • команды, которые управляют средой

  • проблемы, которые должны быть решены

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

    На примере 1.1 показано выполнение законченной версии Поиска няни. Поскольку вы создаёте и развиваете вашу собственную версию, вы можете конечно изменять игру, чтобы внести ваши собственные идеи относительно этого приключения.

    Игра будет выполнятся от начала, потому что это удовлетворяет общим порядком, в котором разделы будут представлены. Пролог имеет одинаково большой опыт по части поддержки выполнения сверху вниз или снизу вверх развитие“урограммы.

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

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

    При запуски базы данных Поиска няни вы быстро будете двигаться к командам, которые исследуют базу данных. Тогда мы осуществим команды, которые управляют базой данных.

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

    You are in the kitchen.

    You can see: apple, table, broccoli

    You can go to: cellar, office, dining room

    > go to the cellar

    You can't go to the cellar because it's dark in the cellar, and you're afraid of the dark.

    > turn on the light

    You can't reach the switch and there's nothing to stand on.

    > go to the office

    You are in the office.

    You can see the following things: desk

    You can go to the following rooms: hall, kitchen

    > open desk

    The desk contains:

    flashlight

    crackers

    > take the flashlight

    You now have the flashlight

    > kitchen

    You are in the kitchen

    > turn on the light

    flashlight turned on.

    ...

    Пример 1.1. Образец поиска няни.

    Цель этого описания состоит в том, чтобы объяснить вам удобство работы с

  • Базой данных Пролога, фактами и правилами

  • Встроенная теорема prover, который позволяет Прологу отвечать на вопросы по поводу базы данных

  • Как логические переменные используются (Они отличаются от переменных большинства языков.)

  • Объединение, встроенный образец matcher

  • Экстра логические особенности (подобно чтению и письму, что делают язык практичным)

  • Как управлять поведением работы Пролога

    Рассмотрим новые возможности пролога которые включают в себя Amzi! Пролог версии 4.1.

    Новые Особенности

    Java 1.1 Поддержка - Класса Java. Теперь поддерживается и версию 1.1 JDK. Это даёт возможность расширить работу Amzi! Пролога с предикатами, осуществленными через методы Java.

    Delphi 3.0 Поддержка – Delphi. Компонент был модернизирован для того, чтобы работать в пакете с версией 3.0. Для этого была изменена расширенная поддержка предикатов, для поддержки версии 3.0. Все Delphi образцы были модернизированы к версии 3.0, это система эксперта Пролога (ProXS) и был добавлен планировщик (SSched).

    Borland C ++ Поддержка - Amzi! логического сервера. Теперь поддерживает и новый Borland's C ++. См. новые демонстрационные программы в \AMZI4\SAMPLES\CPP\HELLO\BORLAND C ++ BUILDER.

    Visual Basic 5.0 и расширенная поддержка предикатов - модуль VB теперь поддерживает расширенные предикаты так, чтобы модули Amzi! Пролога могли вызывать функции, написанные в VB 5.0. Образец, демонстрируемый это добавлен к примерам. Образцы VB были модернизированы под версию 5.0.

    Кроме того существует взаимодействие с MS-Office

    Интерфейс ms-Office

    Чтобы вызывать API функцию от Access, Word или Excel, вам необходимо добавить AMZIVB.BAS к модулю исходного текста в вашей программе.

    Образец Пролога предназначенный для Access находится в APISAMP\HELLO\Access.

    HELLO.MDB, LDB база данных Access имеет одиночную форму, MainForm, и модуль, HelloAmziProlog. Форма имеет поле, содержание которой установлено в значение, возвращаемой функцией HelloAmziProlog() (которая должна быть приветствием, но может также быть сообщение об ошибках). Определения для Логического Сервера содержатся в разделе деклараций модуля. Чтобы выполнять их, откройте HELLO.MDB в Access, и выберите формы, открытый MainForm.

    Язык Java

    Java разработан как объектно-ориентируемый язык для развития безопасного, многоцелевого применения в сети (клиента и сервер). Пролог идеален для здания интеллектуальных компонентов, опытных систем и логики баз данных. В комбинация, Java и Пролог - идеальная пара для поставки полезных интеллектуальных работ в Интернет. Java включает Amzi!-логический сервер для использования Java и Апплет.

    Она включает:

  • Пакет Java включающий ядро логического сервера

  • Методы, которые передают логическому серверу API функции

  • Использование обработки Java для исключения ошибок API

  • Подобных Java, интерфейсы метода.

    Кроме того, вы можете расширить язык Java для того, чтобы позволить Прологу вызывать методы вашей программы написанной на Java.

    Использование языка Java.

    Класс Java и примеры допускают работу с JDK 1.1 и JDK 1.0. Эта документация обсуждает версию JDK 1.1.

    ( Ранняя версия JDK 1.0 является подобной и в деталях интерфейса, очевидно это предусмотрено в исходной программе. Следовательно можно использовать родной интерфейс, который не поддерживает JDK 1.1.)

    Чтобы использовать Класс Java, вы должны сделать этот файл доступным для рабочего окружения:

  • DLL Amzi! Включают: DLL логического сервера-amzi4.dll, и DLL интерфейса Java-a4j_js11.dll. Должен быть установлен ваш ПУТЬ или доступен другим образом для работающего окружения. Обе DLL находятся в директории amzi4\bin.

  • Класс Java в директории amzi\ls, содержащая структуру в amzi.ls*.

  • Пакет должен быть доступен через ваш CLASSPATH. Вы можете добавляя путь \amzi4\lib\java11 в CLASSPATH или копировать под директивную структуру amzi\ls в директории которая уже есть в вашем CLASSPATH.

    Примечание: Не помещайте другие файлы в директорию amzi\ls, поскольку они будут включены когда вы импортируете amzi.ls.*; и могут возникать конфликты при вычислении.

    Привет Пролог

    Удостоверьтесь что Amzi! готов использовать интерфейс Java. Примеры для Java находится в директории amzi4\samples\java\hello. Чтобы построить пробную программу на Java, сначала открывают окно 'DOS' и измените типовую директорию, содержащую Hello.java.

    Javac Hello.java

    Появится Hello.class, который управляется, следующей строкой:

    java Hello

    Краткий обзор

    Класс Java осуществлен, используя интерфейс языка Java (JNI). Это позволяет использовать методы, созданные в классе Java, в C/C ++. Amzi! использует файл *.JNI для того, чтобы было взаимодействие с логическим серверам API, который является внешним интерфейсом ядра Пролога. Взаимодействие необходимо потому, что многие из логических серверов API функций должны быть слегка изменены, для соответствия принятия параметров Java (типы параметров это недостаток в поддержки указателей Java).

    Итак, интерфейс Java определяется классом Java, логическим сервером, чьи методы осуществляются запросами к функции C ++ (в DLL), который, в свою очередь, вызывает ядро Amzi! (DLL). Это иллюстрируется на рисунке № 1.

Рисунок № 1.

Amzi4.dll - логический сервер (ядро Пролога). A4j_js11.dll - библиотека интерфейса, которая осуществляет взаимодействие логического сервера API функции с Java. Те, в свою очередь используют интерфейс Java, классифицирует, LogicServer и LSException.

Имеется множество особенностей класса Java, которые создавались в соответствии с требованиями к характеристикам Java. Они детализированы в следующих абзацах.

Объектно-ориентируемый язык.

Amzi! логический сервер осуществлен как объектно-ориентируемая программа, так, чтобы каждый логический сервер был отдельным модулем, а логический сервер API функции - методы этого модуля. Это нужно, чтобы обеспечить объектно-ориентируемым интерфейсам к логическим серверу для объектно-ориентируемым языкам типа Java. (Amzi! является также доступным в C ++ и Delphi.) Класс логического сервера может использоваться как любой другой класс в объектно-ориентируемом применение. Это делается для изящного подхода к услугам Пролога в применении. (См. "Объекты и логика - C ++ выполнение Пролога", PC AI май / июнь 95)

На рисунке № 2 - расширенная диаграмма архитектуры, которая иллюстрирует пакеты и классы.

Рисунок № 2

Использование Класса Java

Чтобы использовать класс логического сервера, вы импортируете пакет amzi.ls в вашу программу Java:

Импортируйте amzi.ls.*;

Оттуда вы можете или создать новый LogicServer и создавать методы, или вы можете определять новый класс, который расширяет класс LogicServer, добавляет новые методы и переменные.

Методы LogicServer и LSException

LogicServer класс включает все методы, которые дают разработчику полный контроль над ядром Пролога. Они включают методы для: