[Close]
 
popoff.donetsk.ua
Реальность существует независимо от Вас. До тех пор, пока Вы с этим согласны.
Start | News | Text | Forum | Voting | Site map | About me
popoff.donetsk.ua - Статьи - ДонНТУ - Функциональное и логическое программирование - Логическое программирование - Основные элементы языка Пролог
Я это делаю
Personal menu
Vote
Деньги, либо любимое занятие? Permanent address of the question
Деньги, но неинтересная работа и невозможность уделить время семье
Интересная работа, возможность саморазвиваться, но нищенский заработок
Ваш возраст (не обязательно)
Почему? (не обязательно)

Vote is closed.

Search the site
Adverticement
Гинеколог, стоматолог, психотерапевт в Донецке
Statistics
Message
Main site language: Russian
You are watching this site in a language different from the main language. You will see the site contents in different languages, depending on existance of the translation of the requested page. There will be a partial translation for many site pages. The site author recommends you to switch to main language.

Основные элементы языка Пролог

Permanent address of the text

Содержание

Синтаксис

Пролог-программа состоит из термов.

Терм - это последовательность литер.

Виды литер:

  • A,B,C,...,X,Y,Z (прописные)
  • a,b,c,...x,y,z (строчные)
  • 0,1,...,9 (цифры)
  • +,-,*,/,?,... (специальные знаки)

Терм:

  • константа
  • переменная
  • структура
  1. <p> Константы - это поименнованные конкретные объекты или отношения. </p><p> Атомы - это последовательность букв и цифр и начинается со строчной литеры. </p><p> Пример:
    Атомы Не атомы
    y (Т-Пролог)
    :-
    ?-
    'Don-Karlos' Дон-Карлос
    don_Karlos
    '32-30-BMV' 3230 BMV
    argentum серебро
    -35 3-5
    </p>
  2. <p> Переменные записываются с прописной литеры или '_'. </p><p> Переменные похожи на константы, но служат для представления объектов. </p>
  3. <p> Структура - это единый обьект. </p><p> Структура состоит из двух частей: </p><p>
    • функтор, который записывается перед скобками
    • компонент, который записывается в скобках
    </p><p> Пример:
    дает(«Петр», «Ольга», книга).
    дает(«Петр», «Ольга», книга(воскресенье, «Толстой»)).
    дает(«Петр», «Ольга», книга(воскресенье, автор(«Лев», «Толстой»))).
    </p>

Факты, правила

Пролог-программа - это совокупность утверждений.

Утверждение состоят из целей.

Основная операция Пролога - это доказательство целей утверждения.

Типы утверждений:

  • факты
  • правила

В конце утверждения ставится .

Факт - это одиночная цель, которая истина.

ценное(серебро).
pere(Jan, Alex).

Правило - это одна головная цель и одна или более подцелей, которые истинны при некоторых условиях.

спортсмен(X) :- футболист(X).

Оператор правила ':-' читается так 'при условии что'.

«Некто X спортсмен при условии, что - он футболист»

Правило записи:

  • <p> имена отношений - это константы(атомы) </p>
  • <p> цель -это структура: </p><p> < имя отношения >(< арг 1 >, < арг 2 >,...) </p>
  • <p> Синонимами являются: </p><p>
    1. имя отношения
    2. функтор
    3. предикат
    </p>

Оператор правила ':-' разделяет заголовок и тело правила:

  • слева от ':-' - заключение правила
  • справа от ':-' - посылка

Подцели в утверждении могут образовывать «конъюнкцию целей».

кот(X) :- родитель(X.Y),кот(Y).

Оператор ',' обозначает логическую операцию конъюнкция (умножение).

Запросы

Запрос - это целевое утверждение.

Запрос в базу данных не входит.

Запрос записывается в операторной форме:

? - <утверждение>

Пример 4:

кот( барс ).
кот( анфиса ).
кот( пушок ).
кот(X) :- родитель(X, Y),кот(Y).
родитель( пушок, анфиса).
родитель( пушок, барс).

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

В Прологе необходимо учитывать порядок следования утверждений: самое главное должно быть первым.

Запросы:

? - кот( барс ). «Барс - кот ?»
да
? - кот(X). «Назвать всех котов ?»
X=барс
X=анфиса
X=пушок
3 решения
? - родитель( _ , _ ). «Есть родители ?»
да
? - родитель( Z , барс ). « Чей родитель Барс ?»
Z=пушок

Смотрите так же

Статьи
 
ДонНТУ
 
Функциональное и логическое программирование
 
Логическое программирование
 
Общие сведения о языке Пролог
Основные элементы языка Пролог
Арифметика в языке Пролог

Last modification: 08/22/05 22:08