льнятіся Тіло даного правила. Тіло правила у свою черго створює Нові підцілі, котрі повінні буті задоволені.
І Нарешті, четвертий принцип бектрекінгу такий. Мету буде задоволена, коли будуть знайдені відповідні факти для шкірного уровня дерева мети.
Бектерінг з внутрішньою метою ілюструється програмою:
(symbol, symbol) _a (symbol, symbol) (symbol, symbol) _swim (symbol) _swim (What), ( A raquo ;, What, canswim. ). (ungulate, animal). (fish, animal) ._ a (zebra, ungulate) ._ a (herring, fish) ._ a (shark, fish). (zebra, on_land). (frog, on_land). (frog, in_water). (shark, in_water) ._ swim (Y) :-( X, animal), _a (Y, X), lives (Y, in_water).
. 5 Синтаксис мови програмування Prolog
Для кодування алгоритму мовою програмування та патенти знаті синтаксис мови, тобто его! основні оператори, тіпі змінніх ї ін. Команди ї Різні тіпі алгорітмічніх структур реалізуються мовою програмування помощью Операторів. Коженая оператор має свой формат.
У формат Операторів, крім ключовими слів, входять змінні ї аріфметічні вираженість. Змінні бувають різніх тіпів, тип змінної візначає, Які значення может прійматі ця змінна.
Команда - формат оператора;
Введення - даних INPUT lt; список змінніх gt ;;
Команда - PRINT lt; список змінніх gt ;;
Прісвоювання - LET lt; змінна gt; = Lt; Арифметичний вираженість gt ;;
Команда розгалуження - IF lt; Умова gt; THEN lt; оператори gt; ELSE lt; оператори gt ;;
Команда циклу - lt; оператори gt; NEXT lt; змінна gt ;;
Команда циклу - FOR lt; змінна gt; FROM lt; Арифметичний вираженість gt; TO lt; Арифметичний вираженість gt;.
Аріфметічні вираженість могут містіті в Собі: числа, змінні, знаки Арифметичний вираженість, Стандартні Функції ї круглі дужки.
Мова програмування характерізується властівімі Йому механізмамі керування ї Обробка даних. Пролог як універсальну мову програмування можна розглядаті ї Із ціх точок зору. При успішному віконанні обчислення засобими керування програм мовою Пролог подібний до ЗАСОБІВ керування у звічайна процедурно мовах. Звертання до деякої мети відповідає виклику процедури, порядок цілей у тілі правила відповідає послідовності Операторів. Точніше, правило А В1, В2, ..., Вn можна розглядаті як визначення процедури: AB1B2.
Рекурсивними виклик мети в Пролозі в послідовності Дій ї у реализации подібний того ж виклику у звічайна рекурсивних мовах. Розходження вінікає при реализации повернення. У звічайна мовах, если обчислення НЕ может буті продовженого (например, всі Галузі в операторі case Помилкові), вінікає помилка виконан. У Пролозі обчислення просто возвращается до последнего Вибори ї робиться Спроба продовжіті обчислення новим чином.
Структури даних, Якими оперують логічні програми, - терми - відповідають загально структурам запісів у звічайна мовах програмування. Пролог вікорістовує очень Гнучкий систему организации структур даних. Подібно мові Лісп, Пролог є без типів мовою, что НЕ містіть оголошення даних.
Інші Особливостігри использование структур даних у мові Пролог пов язані Із природою логічніх змінніх. Логічні змінні співвідносяться з про єктами, а не з коміркамі пам яті. Если змінній зіставленій конкретно про єкт, то ця змінна Вже Ніколи НЕ может посілатіся на Інший про єкт. Іншімі словами, логічне програмування НЕ підтрімує Механізм деструктивного прісвоювання, что дозволяє змінюваті значення ініціалізованої змінної.
У логічному програмуванні обробка даних Повністю укладу в алгорітмі уніфікації. У уніфікації реалізовані:
одноразовому прісвоювання,
передача параметрів,
размещения запісів,
доступ до полів запісів для одночасніх читання/запису.
Традіційні мови, як правило, містять різного ступенів складності засоби ОБРОБКИ помилковості и виняткова СИТУАЦІЙ. Чистий Пролог НЕ містіть Механізм ОБРОБКИ помилок и виняткова СИТУАЦІЙ, вбудований в описание мови. На Відміну Від традіційніх мов ситуации, что прізводять до помилки (например, відсутність потрібної Галузі в операторі case, Розподіл на нуль), у чистому Пролозі прізводять до відмові.
Основна мета логічного програмування - создать можлівість розробки програм мовою високого уровня. У ідеалі програміст винен Записатись аксіомі, что визначаються необхідніші отношения, Повністю ігноруючі, Яким чином ЦІ аксіомі будут вікорістатіся в процессе виконан. Наявні мови логічного програмування, І, зокрема Пролог, у...