Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекц1-3.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
259.58 Кб
Скачать

Лекція 3 Семантика Прологу.

Зміст

3.1. Декларативна семантика пролог-програм

3.2. Диз’юнкція цілей

3.3. Процедурна семантика

3.3.1. Принцип обчислення

3.3.2. Формальний опис процедур обчислення цілей

3.4. Співвідношення між процедурним та декларативним змістом

3.1 Декларативна семантика пролог-програм

Розрізняють декларативну і процедурну семантику (зміст, розуміння) пролог-програм.

Розглянемо декларативний зміст більш докладно.

Декларативний зміст, стосується тільки відношень, визначених у програмі.

Декларативна семантика визначає, що повинно бути результатом роботи програми, не вдаючись у подробиці, як це досягається. Нехай задано P:-Q, R.

де P, Q, R -терми.

Тоді з погляду декларативного змісту ця пропозиція читається:" P-істинно, якщо Q R істинні." Або " З Q і R випливає Р." Тобто визначаються логічні зв'язки між головою пропозиції і цілями в її тілі.

Таким чином, декларативний зміст програми визначає, чи є дана мета істинною (досяжною), і якщо - так, то при яких значеннях змінних вона досягається.

Конкретизацією I пропозиції С називається результат підстановки в нього на місце кожної змінної деякого терму.

Відмітимо , що це відрізняється від конкретизації змінної.

Приклад:

haschild( X ):-parent( X ,Y).

Пропозиція С.

Визначення.

Нехай дана деяка програма і ціль G, тоді відповідно до декларативної семантики, можна затверджувати, що:

Ціль G щира (т, е. досяжна або логічно випливає з програми) тоді і тільки тоді, коли

(1) У програмі існує пропозиція З, таке, що

(2) існує така його (З) конкретизація I, що

(а) голова I збігається з G і

(b) усі мети в тілі I істинні.

Приклад

C(I):

C:

female(ann).

parent(ann, bob).

mother(ann):-parent(ann, Y), female(ann).

mother(X) :-parent(X, Y), female(X).

?- mother(ann).

Це визначення можна поширити на питання в такий спосіб. У загальному випадку питання - список цілей, розділених комами.

Список цілей називається істинним (досяжним), якщо всі мети в цьому списку істинні, досяжні, при однакових конкретизаціях змінних.

Кома між цілями означає кон’юнкцію цілей, і вони повинні бути усі істинні.

3.2 Диз'юнкція цілей

Можлива диз'юнкція цілей: щира повинна бути принаймні одна з цілей.

Диз'юнкція позначається крапкою з коми ";".

Наприклад

P:-Q;R.

Читається: Р істина, якщо Q - істина або R - щира.

тобто це т же саме, що

P:-R.

P:-Q.

Кома зв'язує мети сильніше, ніж крапка з коми.

У такий спосіб пропозиція

P:-Q, R;S, T, U.

розуміється як

P:-(Q, R);(S, T, U).

і має сенс

P:-Q, R.

P:-S, T, U.

3.3 Процедурна семантика

Процедурна семантика (процедурний зміст) прологу-програми визначає , як пролог-програма відповідає на питання.

Відповісти на питання - це значить задовольнити мети.

Тому процедурна семантика прологу - це процедура обчислення списку цілей з урахуванням програми.

3.3.1 Приклад обчислення

Розглянемо програму і на її прикладі - процедуру обчислення списку цілей.

Програма 1.

1.великий(ведмідь).

2.великий(слон).

3.маленький (кіт).

4.бурий(ведмідь).

5.чорний(кіт).

6.сірий(слон).

7.темний(Z):-чорний(Z).

7.1

8.темний(Z):-бурий(Z).

8.1

9.?-темний(X),великий(X).

9.1 9.2

Пропозиції пронумеровані для зручності

У такий спосіб для обчислення цілей треба було 7 зіставлень і один відкіт.