Page 8 - 4800
P. 8

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

                   1.2 Елементи мови Пролог

                   Програма  на  Пролозі  складається  з  множини  пропозицій  (фраз).  Кожна
            пропозиція – це або факт, або правило. Факт – це твердження про те, що дотримується
            деяке відношення. Він записується як ім'я, за яким слідує список аргументів у дужках.
            Наприклад:
                   likes(“Іван", "Марія").
                   Правило  –  це  факт,  істинне  значення  якого  залежить  від  істинності  інших
            фактів. Наприклад:
                   likes("Іван",X) if likes("Петро",X).
                   Аргументи пропозицій Пролог-програми називаються термами, а саму Пролог-
            програму  можна  розглядати  як  мережу  відношень,  що  існують  між  термами.  Кожен
            терм позначає  деякий об'єкт  предметної  області і записується як послідовність літер,
            що поділяються на чотири категорії: прописні букви, малі літери, цифри і спеціальні
            знаки. Існує три типи термів: константа, змінна або структура (складений терм).
                   Константами є пойменовані конкретні об'єкти або конкретні відношення. Існує
            два види констант – атоми і числа. Атом – це або послідовність латинських букв, цифр і
            знака підкреслення, що починається з рядкової латинської  букви, або  довільна група
            символів у лапках. Наприклад: ivan, “Iвaн", invoice_n, "іван", "n_рахунку".
                   Змінна  в  Пролозі  повинна  мати  ім'я,  що  починається  з  прописної  букви  або
            знака  підкреслення  і  складається  з  латинських  літер.  Наприклад:  Name,  X,  Invoice_n.
            Змінна  називається  зв'язаною,  якщо  є  об'єкт,  який  вона  позначає.  При  відсутності
            такого  об'єкта  змінна  називається  вільною.  Для  позначення  змінної,  на  яку  немає
            посилання  в  програмі,  використовується  анонімна  змінна  –  одиночний  знак
            підкреслення (_).
                   Структура (або складений терм) – об'єкт, що складається із сукупності інших
            об'єктів,  що  називаються  компонентами.  Структура  записується  на  Пролозі  за
            допомогою  функтора  і  компонент,  взятих  у  круглі  дужки  і  розділених  комами.
            Компоненти самі є термами. Наприклад, у факт likes входить структура book:
                   likes("Іван", book("назва", "автор"))
                   Складені  терми  аналогічні  записам  Паскаля  або  структурам  С,  тобто  –  це
            обумовлені програмістом об'єкти довільної складності. За цією аналогією – функтор і
            кількість  компонентів  складеного  терма  показують  тип  запису,  а  компоненти
            складеного терма відповідають полям запису.

                   1.3 Структура програм Пролога

                   Програма  на  Пролозі  складається  з  декількох  секцій,  кожна  з  яких
            ідентифікується ключовим словом і має таку узагальнену структуру:
                   сonstans
                   /* секція оголошення констант */
                   domains
                   /* секція оголошення доменiв */
                   database
                   /* секція оголошення динамічних баз даних */
                   predicates
                   /* секція оголошення предикатів */
                   goal
                   /* підціль_1, підціль_2, і т.д. */
                   clauses
                   /* пропозиції (факти і правила) */
                   Обов'язковим у програмі є наявність двох секцій з іменами predicates і clauses. У
            першій  з  них  описуються  структури  використовуваних  у  програмі  відношень,  а  в







                                                         8
   3   4   5   6   7   8   9   10   11   12   13