Практична робота на мові Пролог, основні інструменти та методика роботи
Дидактична цінність мови Пролог визначається тим, що вона:
1) є простим і наочним прикладом декларативного стилю програмування;
2) ідеально пристосована для рекурсивних обчислень, що є важливим засобом декомпозиції задач;
3) слугує дуже важливим інструментом розробки системи ШІ.
Для простоти і можливості опертися на базову підготовку студентів застосування Прологу ілюструють на задачах обчислювального типу. Оскільки обчислення здійснюються методом проб та помилок (пошук з поверненнями), його практичне застосування виправдане лише для обчислень, що є рекурсивними за своєю природою.
Розділи меню та вікна. Систему запускають введенням команди Prolog, комп’ютер завантажує до оперативної пам’яті системні файли Прологу; з’являється заставка системи. Натисканням [Space] здійснюється вхід до загального режиму, відкривається головне меню із звичайними для системи програмування функціями:
Files, Edit, Run, Compile, Options, Setup.
Пункти меню викликають переміщенням підсвітки між ними клавішами управління курсором чи натисканням літерних клавіш, які відповідають першій букві пункту. Щоб вибрати розділи головного меню з будь-якого режиму, можна скористатися „гарячою” комбінацією клавіш Alt з відповідною літерою. Дії, пов’язані з натисканням функціональних клавіш (див. нижню рамку екрану), а також [F1]Help, що виводиться, визначаються поточним режимом. Вихід із пункту (режиму) здійснюється натисканням [Esc],остаточний вихід із системи – за [Alt + X] або вибором File / Quit.
Розділи головного меню File, Compile, Options, Setup мають власні меню, що спадають; Edit, Run є безпосередніми командами і не мають якихось опцій.
Екран системи містить чотири вікна: Editor, Dialog, Message, Trace, які використовуються відповідно для введення і редагування вихідного тексту, задання зовнішніх цілей і виведення результатів розрахунку, протоколювання роботи і налагоджувального трасування. Активне вікно виділяється подвійною рамкою. Перегляд різних системних вікон забезпечується послідовними натискуваннями [F6]. Увійшовши у будь-яке з цих вікон, можна змінювати його розміри чи розташування за допомогою клавіш із стрілками, їх комбінаціями з [Shift] чи [Ctrl].
Коли програма запускається із середовища розробки, а в діалоговому вікні виведено запрошення Goal, стрічка допомоги перераховує „гарячі” клавіші та відповідні команди, які дають змогу повторно викликати останній ланцюг ([F8]) або тимчасово призупинити виведення програми([F10]). При виявленні помилки видається коротке повідомлення, курсор встановлюється у відповідну позицію і система переходить до режиму редагування, після усунення помилки повторна компіляція виконується за [F9] (див. нижню стрічку екрана).
Робота з файлами. Через File можна переглянути довільно обрану директорію. Вибір Files/Pick дає змогу визначити потрібний файл із списку раніше завантажуваних файлів. Після вибору Files/Pick чи натиснення [Alt + F3] можна ,використовуючи клавіші вертикального переміщення курсора, виділити потрібний файл для його повторного завантаження. Після вибору Load з’явиться пропозиція ввести ім’я файла.
За умовчанням до вікна редактора завантажується файл work .pro – останній файл, який зберігається без зазначення імені (розширення .pro є стандартним для файлів з Пролог-програмами). Ім’я файла для запам’ятовування на диску набраної програми задається після вибору Write To; робоча директорія встановлюється через меню File/Change Dir. Операцію переназначення директорії доводиться повторювати на початку кожного сеансу.
Редагування, компіляція та запуск. У верхній частині вікна Editor індукуються ім’я завантаженого файла, поточне положення курсору, вмикання вирівнювання стрічок (наслідування відступу попередньої стрічки), режим вставляння/зменшення. Більшість команд редактора співпадають з командами популярного WordStar і є близькими до використовуваних у Турбо – Паскалі : інформацію про ці команди можна отримати натисканням [F1]. Команди редактора, як правило, набираються двома комбінаціями гарячих клавіш (див. табл.). Для виділення блоку слід набирати відповідні комбінації клавіш з положенням курсору у діагональних точках блоку. Під час організації пошуку із заміною буде зроблено запит про бажаний режим замін (глобальних чи локальних), у другому випадку перед кожним знайденим фрагментом система здійснить запит про підтвердження заміни.
Таблиця
„Гарячі клавіші” редактору Прологу
Перехід на початок файлу | [Ctrl + PgUp] |
Перехід на початок екрану | [Ctrl + Home] |
Видалення наступного слова | [Ctrl + T] |
Видалення стрічки | [Ctrl + Y] |
Видалення стрічки до кінця | [Ctrl + Q], [Ctrl + Y] |
Додавання стрічки | [Ctrl + N] |
Початок виділення блоку | [Ctrl + K], [Ctrl + B] |
Кінець виділення блоку | [Ctrl + K], [Ctrl + K] |
Сховати/показати виділення | [Ctrl + K], [Ctrl + H] |
Відмінити виділення | [Esc] і повт. вхід |
Перехід на початок блоку | [Ctrl + Q], [Ctrl + B] |
Перехід на кінець блоку | [Ctrl + Q], [Ctrl + K] |
Зміна регістру у блоку | [Ctrl + K], [Ctrl + E] |
Видалення блоку | [Ctrl + K], [Ctrl + Y] |
Переміщення блоку | [Ctrl + K], [Ctrl + V] |
Копіювання блоку | [Ctrl + K], [Ctrl + C] |
Копіювання блоку до файлу | [Ctrl + K], [Ctrl + W] |
Копіювання блоку з файлу | [Ctrl + K], [Ctrl + R] |
Початок пошуку | [Ctrl + Q], [Ctrl +F] |
Повторення пошуку | [Ctrl + L] |
Початок замін | [Ctrl + Q], [Ctrl + A] |
Повторення замін | [Ctrl + L] |
У процесі створення чи корекції вихідного тексту, але не під час компіляції та запуску, інші системні вікна не потрібні. Натиснувши [F5], можна відкрити вікно редагування на весь екран. Її повторне натискання повертає вихідний стан.
У мові Пролог організується вставка з іншого файла, натисканням [F7] запитується ім’я файла, після чого відкривається додаткове вікно з цим файлом. Два повторних натискання [F7] фіксує положення курсора на початку і наприкінці потрібного фрагменту і виконує вставку.
Для запуску програми необхідно вийти за [Esc] із середовища редактора і виконати команду Run. Компілятор буде викликано автоматично. Повідомлення системи будуть з’являтися у вікні Message. Відкомпільована програма у звичайному режимі (Memory) розміщується в оперативній пам’яті і запускається на виконання. У вікні Dialog з’являються результати, але лише ті, виведення яких було запрограмовано. Вікно діалогу зберігає вміст протягом усього сеансу.
Управління компіляцією. На початкових етапах оволодіння Прологом доводиться управляти тільки попереджанням про одноразово використовувані змінні (Variable Used once Warning). Якщо якась змінна і повинна використовуватись тільки один раз, її слід замінити на анонімну.
Установки . З опцій команди Setup найбільш уживаним є режим Window Size. Після вибору у ньому стрічки Edit Window можна стрілками управління курсором змінювати розмір вікна редактора, зміни прискорюються при натиснутій [Ctrl]. Положення вікна змінюється комбінацією [Shift] зі стрілками.
Вибір команди „Збереження системного файла” приводить до запам’ятовування поточних параметрів системи у sys-файлі, розташованому за замовченням в каталозі Prolog. Файлу конфігурації можна задати будь-яке ім’я, проте при запуску Турбо-Прологу використовують файл prolog.sys. Для поновлення з виконуваної програми раніше збереженої конфігурації на початок вихідного тексту програми розміщують директиву компілятора config <ім’я файлу>.sys.
Режим трасування. Розмістивши перед вихідним текстом програми директиву trace чи shorttrace, можна задати компілятору генерацію коду, який здійснює трасування предикатів, коли вказано trace. Турбо-Пролог не буде виконувати оптимізуючі перетворення (скорочення хвостової рекурсії та ін.); shorttrace показує трасу із скороченням рекурсії та оптимізацією. За trace чи shorttrace можна задати список предикатів; тоді трасуються тільки зазначені предикати.
Комбінація [Ctrl+Т] дає змогу включати та відключати режим трасування. Натискання [Alt+T] викликає меню трасування, за допомогою якого можна переключити режим трасування (On/Off), а також дозволити чи заборонити використання в процесі трасування вікон трасування чи редагування.
При увімкненому покроковому режимі виконання програми її виконання призупиняється після кожного намагання задовольнити підціль, і у вікні трасування з’являється налагоджувальна інформація, виконання програми продовжується за [F10].
Ключовими словами вікна трасування є:
CALL: виклик предикату, ім’я предикату та значення аргументів висвічуються у вікні трасування.
RETURN: твердження є істинним, і предикат передає управління наступному предикатові, що викликається. Якщо є ще речення, зіставлювані із вхідними параметрами, то висвічується зірочка (*), яка показує, що це речення є точкою повернення.
FAIL: предикат є хибним (його ім’я не повідомляється).
REDO: переривання з поверненням. Ім’я предиката, який має бути виконаний знову, а значення його параметрів висвічуються у вікні трасування.
Під час роботи в системі Прологу входження до неї здійснюється через prolog.exe. Далі оглядаємо заставку, при натисканні [Е] має місце входження до редактора, завантажується файл work.pro, виникає подвійна рамка; робиться спроба набору фрагменту (5-6 рядків) будь-якої з програм, перевіряється робота клавіш управління курсором, відбувається перехід на початок/кінець рядка, збереження відступу при переході до наступного рядка. Слід усвідомити призначення F-клавіш (нижній рядок). По F1здійснюється входження у Help та ознайомлення з його змістом. Слід спробувати застосувати модерні режими редагування. По [Esc] виходять до меню файлів, вибирають File/Change Dir, задають директорію типу Д:\pro683А для записування напрацьованих файлів, натискають [Enter].
Далі послідовним натисканням [F6] здійснюється переключення між вікнами, по [Esc] виходять у загальний режим системи. Натисканням S вибирається Setup/Windows Size, переключаючись між вікнами за допомогою клавіш управління курсором, робиться спроба змінювати їх величину. Закінчується це на розумному варіанті. Надалі знову виходять на загальний режим, по [О] входять у режими задання опцій компілятора, відключають видачу всіх попереджень (warnings).
Робота з першою програмою. Здійснюється вихід у загальний режим, вибір File/New File, відмова від збереження набраного раніше. Далі набирається потрібна програма обчислень 3! З внутрішньою метою. Слід приділяти увагу роботі під час набирання, зокрема з регістрами. По [F9] виконується компіляція, по [R] отримують відповідь.
Трасування. Здійснюється входження у вікно редактора, перед програмним додається чистий рядок. Далі в ній набирається команда трасування trace, готується бланк для протоколу, виконується компіляція та запуск на розрахунок. Послідовними натисканнями [F10] виконуються кроки трасування. З кожним кроком записується в бланку положення курсору у вікні з програмою та повідомлення трасування.
Дослідження. Розраховуються вручну величини 7!, 8!. Прибирається команда трасування та розділ цілі. Послідовно виконується розрахунок названих факторіалів із заданням зовнішніх цілей, з’ясовується чи є вірним fact (8, X), якщо ні, то це все досліджується і усувається ефект, що спостерігається.
3.7. Контрольні запитання
1. В чому полягає сутність знання?
2. В чому полягає сутність і різниця між поняттями декларативного та процедурного зображень?
3. В чому полягає сутність концепції фреймів?
4. Хто є творцями мови Пролог?
5. Що включає до себе Пролог-програма?
6. Які змінні вважаються вільними в мові Пролог?
7. В чому полягає призначення відтинання?
8. Які існують типові задачі обробки списків?
9. Чим визначається дидактична цінність мови Пролог?
10. В чому полягають особливості роботи з файлами у мові Пролог?
Дата добавления: 2015-04-01; просмотров: 1029;