У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


правила, а також задавати загальні питання.

* Змінні в Пролозі отримують свої значення при співставленні з константами в фактах і правилах;

* Тому, що змінна є зв`язаною тільки в середині однієї фрази, не можна зберігати інформацію, присвоївши значення змінній.

8.Анонімна змінна ніколи не отримує значення.

9.Коментарі використовуються традиційним для програмістів чином. Коментар починається символами /* і закінчується символами */ .

2.5.Способи Співставлення.

В Пролозі існує декілька способів співставлення:

1. Ідентичні структури співставляються між собою;

2. Вільна змінна співставляє константу або раніше прив'язану змінну і стає зв'язаною з цією величиною.

3. Дві вільні змінні можуть співставляться і бути зв'язаними між собою. На протязі часу зв'зування, вони розуміються як одна змінна. Іншими словами, якщо одна із змінних отримала якесь значення, інша - зразу ж отримує те ж значення.

Наприклад, відношення

parent(joe,X) співставляючись з Parent(joe,Y) ...

зв'язує змінні Х та У відповідним чином.

4. В Пролозі зв'язування (присвоєння) проходить двома способами: на вході і виході. Коли змінна потрапляє в фразу, вона стає вхідним параметром і позначається (i); а, коли виходить із фрази - стає вихідним параметром, який позначається (о).

Позначення.

Для полегшення читання в Пролозі використовуються наступні позначення:

:- cимвол if;

, слово аnd;

; cлово or .

Вправи.

2.1.Напишіть речення українською, які говорять про те, що визначають для людини наступні фрагменти Прологу:

1.дівчина (Галя);

2.подобається (Що, івану);

3.подобається (Що, івану) if подобається (Що, петру).

2.2.Напишіть фрагменти прологівських програм, які задають наступні твердження української мови:

1.Місто - Київ.

2.Місто Київ красиве.

3.Київ - столиця України.

4.Як називається столиця України?

2.3.Напишіть правило Прологу, яке відображає наступну ситуацію. Ми маємо факти батько(микола, іван), мати(ніна, іван). Потрібно описати правило, яке визначає батьків Івана.

2.4.Нехай у Пролог системи є набір фактів:

батьки(микола, ніна, іван)

батьки(петро, галя, андрій)

батьки(віктор, надія, марія).

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

1.Goal: батьки(X,Y,_);

2.Goal: батьки(_,_,Х).

3.СТРУКТУРА ПРОГРАМИ PDC ПРОЛОГУ.

3.1.Основні розділи програми.

В якості реалізуючої системи Прологу будемо розглядати PDC Пролог. Він вибраний тому, що на противагу більшості реалізацій Прологу, є компілятором.

В загальному, програма PDC Прологу (надалі будемо писати просто Пролог) складається з 3-4 розділів.

Розділ clauses - головна частина програми Прологу. Тут записуються факти та правила, які будуть використані для задовільнення цілі програми.

Розділ predicates - використовується для об'яви предикатів та доменів і опису типів їх аргументів. Коли ви об'являєте предикат, ви вказуєте Прологу які домени аргументів належать даному предикату. В ньому повинні бути присутніми всі предикати, зазначені в розділі clauses.

При використанні вмонтованих предикатів, наприклад, таких, як write, makewindow, nl і т.д., об'являти їх не має потреби.

Опис предикату починається з імені, потім, якщо вони існують, іде список типів аргументів, розділених комами і взятими в круглі дужки. Типи аргументу є або ж стандартними доменами, або ж доменами, які ви об'явили в розділі domains. Ім'я предикату повинно бути ідентифікатором.

Розділ domains - використовується подібно конструктору типів type в Паскалі. За допомогою цього розділу можна перейменувати /перевизначити/ стандартні домени і описати домени складних типів даних. Якщо в вашій програмі використовуються тільки стандартні домени, тоді в розділі domains взагалі не має потреби.

Розділ goal - використовується для задання вмонтованих (внутрішніх) цілей, коли ви бажаєте, щоб програма працювала незалежно від розвитку середовища Прологу. Іншими словами, якщо ви плануєте компілювати програму в самостійно виконувану програму, ви можете явно вказати ціль виконання.

Розділ constants - застосовується для об'яви констант. Використовується синтаксис:

<Ідентифікатор> = <Макровизначення>.

Тут присутні наступні обмеження:

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

заборонена рекурсія при визначенні константи;

в описі констант система не розпізнає великі та малі літери;

ідентифікатори констант є глобальними і можуть бути об'явлені тільки один раз.

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

3.2 Стандартні домени.

Пролог має декілька вмонтованих стандартних доменів, основні з яких приводяться нижче. Ви можете використовувати стандартні домени при опису типів аргументів предикату. Їх не потрібно визначати в розділі domains.

Домен | Опис

char

integer

real | символ, взятий в одинарні лапки цілі від -32768 до 32767 числа, з необов`язковим знаком + або - , який стоїть перед деяким числом DDDDDDD, потім необов`язкова десяткова крапка (.), яка стоїть перед наступним числом DDDDDDD і необов`якова експоненційна частина (е(+ -)DDD):<+: ->DDDDD<.>DDDDDDD<e<+ : ->DDD>

Приклади дійсних чисел:

42705 9999 86.74

9111.769483 521е238 67.85е+21

Допустимий діапазон чисел від 1е-307 до 1е+308. При необхідності цілі числа автоматично перетворюються в дійсні.

string | довільна послідовність символів, які заключені в подвійні лапки.

symbol | Існує два формати символів:

1. послідовність букв, чисел і підкреслень, які починаються з великої букви;

2. послідовність символів, які заключені в подвійні лапки (випадок, коли символ не починається з великої букви або ж коли містяться проміжки).

Число аргументів предикату називається арністю предикату. Пролог допускає предикати з однаковою назвою але різною арністю.

Пролог проводить автоматичне перетворення доменів:

1. між стрічками і символами;

2. між цілим, символьним і дійсним доменом.

3.3.Синтаксис правила.

Як ми вже зазначали, синтаксис правила складається з трьох частин:

голова: - <підціль>, <підціль>, ... , <підціль>.

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


Сторінки: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22