русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Пролог и логика предикатов. Внешние цели


Дата добавления: 2014-09-29; просмотров: 989; Нарушение авторских прав


Логические взаимосвязи между фактами и объектами в логических языках описываются с помощью обозначений, унаследованных из логики предикатов. Синтаксически все объекты данных и отношения представляют собой ТЕРМЫ.

Пример 1.1

«Мэри любит яблоки»

Два объекта «Мэри» и «яблоки» связаны отношением «любит».

Отношение, связывающее объекты, называется ПРЕДИКАТОМ.

Предикат «любит» связывает объекты «Мэри» и «яблоки»:

любит (Мэри, яблоки). % Факт

и «любит», и «яблоки», и «любит (Мэри, яблоки)» — все это термы.

«Бет любит то же самое, что и Мэри»

Используем местоимение «это», которое может обозначать любое имя существительное. «Это» — переменная, которая может принять ряд конкретных значений.

«Бет любит это, если Мэри любит это.»

Условная часть: «если Мэри любит это».

Следствие: «Бет любит это».

Если условие истинно, то истинно и следствие.

любит (Бет, это):- % Правило

любит (Мэри, это).

Простые объекты могут быть двух типов:

— конкретные объекты или КОНСТАНТЫ (Мэри,Бет,-1,0.21);

— ПЕРЕМЕННЫЕ (это).

По правилам Пролога константы пишутся со строчной буквы, переменные — с прописной (мери, бет, X,Y).

Все известные нам соотношения можно переписать так:

likes(mary,apples).

likes(beth,X):-

likes(mary,X).

Это практически готовая Пролог — программа.

Можно подвести итог:

Пролог — программы состоят из утверждений.

Факт является утверждением, безусловно, истинным.

Правило — утверждение, истинное при некоторых условиях.

Условная часть правила называется ТЕЛОМ, следствие (или часть вывода) — ГОЛОВОЙ правила. Если тело правила состоит из нескольких условий, они могут быть связаны конъюнкцией (логическим «И»), обозначающейся запятой «,»:

любит (джон, X):-

любит (мэри,X), % конъюнкция двух условий

любит (энн, X).

или дизъюнкцией (логическое «ИЛИ»), обозначающейся точкой с запятой «;».



Кроме того, от предикатов разрешатся брать отрицание:

Not (likes (mary, oranges)). % Мэри не любит апельсины.

ЗАПРОС или ЦЕЛЬ также является утверждением Пролог — программы.

Если ФАКТ — ПРАВИЛО С ПУСТЫМ ТЕЛОМ, ТО ЦЕЛЬ (ЗАПРОС или формулировка задачи, которую нужно решить) — ПРАВИЛО, ИМЕЮЩЕЕ ТОЛЬКО ТЕЛО.

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

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

Это означает, что, в ответ на внешний запрос система находит все возможные наборы значений для переменных, содержащихся в запросе.



<== предыдущая лекция | следующая лекция ==>
Декларативные и процедурные языки программирования | Управление программой. Подцели. Механизм сопоставления


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.068 сек.