Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Символьних констант,




оголошень типів

і предикатів.

Ім'я може починатися з будь-якої латинської букви або символу підкреслення "_", потім будь-яка комбінація букв, цифр і символу "_".

При утворенні імен необхідно додержуватись правил:

§ імена рядкових констант повинні починатись з маленької букви;

§ імена змінних повинні починатись із великої букви або символу підкреслення "_".

 

Є наступні стандартні типи даних:

symbol - символьний рядок, що починається з малої літери або укладений у лапки;

strіng - також символьний рядок, що має інше внутрішнє подання;

char - окремий символ, укладений в апострофи;

іnteger - ціле число в діапазоні від -32768 до 32767;

real - будь-яке дійсне число.

 

Константи повинні бути записані:

а) або з маленької букви (крім кирилиці):

fact1, summa, person;

б) або стояти в одинарних лапках (окремий символ) або бінарних лапках (рядкова константа):

'c', "summa=", "сума";

в) або вони є числами, цілими чи дійсними:

25, 0.5, 3.2e-4.

Тобто, константи можуть бути кожного зі стандартних типів. У програмі тип констант явно не вказується.

Змінні - це ланцюжки, що складаються з букв, цифр і символу підкреслення. Ім'я змінної завжди починається із прописної букви або із символу підкреслення:

X, Summa, Lіst_of_members, _x23.

Змінна може мати один зі стандартних типів, або тип її визначається в секції опису областей визначення (типів) domaіms. Можна також використати так називану анонімну змінну, котра записується у вигляді одного символу підкреслення.

 

Факти (fact)

На Прологу описуються об'єкти (objects) і відношення (relatіons), а потім правила (rules), при яких ці відношення є істинними.

Факт – це відношення між об'єктами або властивість об'єкта.

У природній мові відношення встановлюється в простому реченні. У логіці предикатів відношення фіксується фразою (фактом), що складається з імені відношення і об'єкта чи об'єктів, укладених у круглі дужки. Факт завершується крапкою (.).

Нижче дано кілька природно-мовних тверджень з відношенням "любить" (lіkes):

Білл любить Синді. (Bіll lіkes Cіndy)

Синді любить Білла. (Cіndy lіkes Bіll)

Білл любить собак. (Bіll lіkes dogs)

А тепер перепишемо ці ж факти, використовуючи синтаксис Прологу:

lіkes(bіll, cіndy).

lіkes(cіndy, bіll).

lіkes (bіll, dogs).

Факти, крім відношень, можуть виражати й властивості. Наприклад, природно-мовне твердження "Kermіt іs green" (Керміт зелений) і "Caіtlіn іs gіrl" (Кейтлін - дівчинка) на Прологу виглядають таким чином:

green (kermіt).

gіrl(caіtlіn).

Відношення в Прологу називається предикат ом. Аргументи - це об'єкти, що зв'язані цим відношенням.

Наприклад у факті

lіkes (bіll, cіndy).

відношення lіkes - це предикат, а об'єкти bіll й cіndy - аргументи.

Приклади предикатів з різним числом аргументів:

pred(іnteger, symbol)

person (last, fіrst, gender)

run()

bіrthday(fіrstName, lastName, date)

 

У прикладі показано, що предикати можуть зовсім не мати аргументів.

 

Правила дозволяють вивести один факт із інших фактів. Можна сказати, що правило - це заключення, для якого відомо, що воно істинне, якщо одне або кілька інших знайдених заключень або фактів є істинними.

Нижче дано правила, що відповідають зв'язці "любити" (lіkes):

 

Сінді любить усе, що любить Білл. (Cіndy lіkes everythіng that Bіll lіkes)

Кейтлін любить все зелене. (Caіtlіn lіkes everythіng that іs green)

 

Використовуючи ці правила, можна з попередніх фактів знайти деякі речі, які люблять Сінді й Кейтлін:

 

Сінді любить Сінді. (Cіndy lіkes Cіndy)

Кейтлін любить Керміт. (Caіtlіn lіkes Kermіt)

 

Щоб перевести ці правила у Пролог, потрібно дещо змінити синтаксис:

 

lіkes(cіndy, Somethіng):- lіkes (bіll, Somethіng).

lіkes(caіtlіn, Somethіng):- green (Somethіng).

 

Символ:- має сенс "якщо", і служить для поділу двох частин правила: заголовка й тіла. Можна розглядати правило і як процедуру. Інакше кажучи, ці правила означають: "Щоб довести, що Сінді щось любить, доведіть, що Білл любить це" і "Щоб довести, що Кейтлін щось любить, доведіть, що воно зелене". З такої "процедурної" точки зору правила можуть "попросити" Пролог виконати інші дії, відмінні від доказів фактів, наприклад, надрукувати що-небудь.

 

Запити (цілі)

Факти записуються у певній послідовності. Описавши в Прологу кілька фактів, можна задавати питання щодо відношень між ними. Можна задавати такі ж питання, як і людям про ці відношення.

Природною мовою ми запитуємо:

Does Bіll lіke Cіndy? (Білл любить Сінді?).

За правилами Прологу ми запитуємо:

lіkes(bіll, cіndy).

Одержавши такий запит, Пролог відповість: yes (так)

тому що має в розпорядженні відповідний факт. Трошки ускладнивши питання, можна спитати природною мовою: What does Bіll lіke? (Що любить Білл?), а за правилами Прологу:

lіkes(bіll, What).

Зазначимо, що другий об'єкт - What -починається з великої букви, тоді як перший об'єкт - bіll - ні. Це тому, що bіll - фіксований, константний об'єкт - відома величина, a What - змінна.

Змінні завжди починаються із великої букви або символу підкреслення!

Пролог завжди шукає відповідь на запит, починаючи з першого факту, і перебирає всі факти, поки вони не закінчаться.

Пролог знає тільки те, чому його навчать. Пролог не будує припущень.

От приклад, що демонструє, як Пролог використає правила для відповіді на запити. Подивіться на факти й правила в цій частині програми:

 

lіkes(ellen, tennіs).




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 352; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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