
- •3. Що зазвичай являє собою програма на мові Пролог?
- •5. З яких розділів зазвичай складається програма на Visual Prolog?
- •10. Назвіть правила оголошення предикатів.
- •11. Назвіть правила іменування предикатів.
- •12. Перелічіть основні домени в Visual Prolog.
- •13. Поясніть, коли потрібно декларувати домени аргументів предикатів, а коли ні.
- •21. Як закоментувати рядок або частину програми в Пролозі?
- •1. Дайте визначення поняттю «уніфікація» та поясність процес уніфікації цільового твердження з реченням.
- •3. Поясніть, навіщо використовується точка пошуку з поверненням.
- •1. Назвіть види повторень, які реалізовані в Пролозі.
- •4. Де зберігаються значення змінних при рекурсії?
21. Як закоментувати рядок або частину програми в Пролозі?
Коментарі. Гарним стилем програмування є включення в програму коментарів, що
пояснюють все те, що може бути незрозуміло комусь іншому (або навіть розробнику програми, через деякий час). Багаторядкові коментарі повинні починатися з символів «/*» і завершуватися символами «*/». Для встановлення однорядкових коментарів можна використовувати або ці ж символи, або починати коментар символом відсотка («%»). 22. Наведіть приклад зіставлення одного значення з іншим.
Зіставлення (matching). В Visual Prolog є кілька прикладів зіставлення одного значення з
іншим. Ясно, що ідентичні структури можливо порівняти одну з одною. Наприклад, можливо порівняти: parent(joe,tammy) з parent(joe, tammy). 23. У якому випадку змінні називаються сполученими вільними змінними. Дві вільні змінні можуть зіставлятися одна з одною. Наприклад, parent(Joe, X)
зіставляється з parent(joe, Y), зв'язуючи при цьому змінні X та Y між собою. З моменту зв'язування X і Y трактуються як одна змінна, і будь-яка зміна значення однієї з них призводить до негайної відповідної зміни іншої. У разі подібного «зв'язування» між собою кількох вільних змінних всі вони називаються сполученими вільними змінними.
1. Дайте визначення поняттю «уніфікація» та поясність процес уніфікації цільового твердження з реченням.
Процес, який використовує Visual Prolog під час спроби зіставлення виклику (з підцілі) з
реченням (у розділі програми clauses), включає зв'язування певного виклику з конкретним реченням – те, що називається уніфікацією (unification). У Пролозі уніфікація реалізує процедури більш традиційних мов – це такі процедури, як передача параметра, вибір варіанта (Case), створення структури, доступ до структури, присвоєння.
Розглянемо програму, наведену в прикладі 2.1 з точки зору того, як утиліта Test Goal буде
шукати всі рішення наступної цілі: written_by (X, Y). Намагаючись виконати цільове твердження written_by (X,Y), Visual Prolog повинен перевірити кожне речення written_by в програмі. Зіставляючи аргументи X і Y з аргументами кожного речення written_by, Visual Prolog виконує пошук від початку програми до її кінця. Виявивши речення, відповідне цільовому твердженню, Visual Prolog присвоює значення вільним змінним таким чином, що цільове твердження і речення стають ідентичними, в такому випадку кажуть, що цільове твердження уніфікується з реченням. Така операція зіставлення називається уніфікацією. 2. Поясність суть методу пошуку з поверненням.
Visual Prolog при пошуку рішення задачі використовує метод проб і повернень назад. Цей
метод називається пошук з поверненням. Якщо, починаючи пошук рішення задачі (або цільового твердження), Visual Prolog повинен вибрати між альтернативними шляхами, то він ставить маркер у місця розгалуження (що називається точкою відкату) і вибирає першу підціль, яку і буде перевіряти. Якщо дана ціль не виконається, Visual Prolog повернеться до точки відкату і спробує перевірити іншу підціль.