|
Скачати 88.26 Kb.
|
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ГОЛОВНЕ УПРАВЛІННЯ ОСВІТИ І НАУКИ ВИКОНАВЧОГО ОРГАНУ КИЇВРАДИ (КИЇВСЬКОЇ МІСЬКОЇ ДЕРЖАВНОЇ АДМІНІСТРАЦІЇ) КИЇВСЬКЕ ТЕРИТОРІАЛЬНЕ ВІДДІЛЕННЯ МАЛОЇ АКАДЕМІЇ НАУК УКРАЇНИ ТЕМА РОБОТА Інтерпретатор мови програмування КЕНГУРУ АВТОР РОБОТИ: Єршов Павло Сергійович 3 жовтня 1994р. Слухач МАН Район Солом’янський Технічного ліцею НТУУ «КПІ» ліцеїста 10 класу просп. Повітрофлотський 43, кв.55 телефон 249-06-84, 80675028995 науковий керівник Погрібний Олександр Васильович КИЇВ – 2010 Інтерпретатор мови програмування КЕНГУРУ ЗМІСТ РОБОТИ Вступ ……………………………………………………………………….. 4 Основна частина …………………………………………………………... 5 Висновки …………………………………………………………………… 12 Список використаної літератури …………………………………………. 13 ВСТУП Метою даної роботи є розробка інтерпретатора мови програмування віртуального персонажу КЕНГУРУ, програмної оболонки для анімації віртуального персонажу на основі конструкцій однойменної мови програмування. Це може значно допомогти при вивченні основних сучасних мов програмування в базовому курсі з інформатики, оскільки для написання основних конструкцій такої мови використовуються українські слова (наприклад, ПОЧАТОК, ПОКИ, ЯКЩО, тощо). Для управління персонажем – КЕНГУРУ використовуються також зрозумілі команди (наприклад, ВІЗЬМИ, ПОВЕРНИЛІВОРУЧ та ін.) Головним завдання відповідного інтерпретатору, який оснований на сучасного методу синтаксичного аналізу. Інтерпретатор – це програма, яка обробляє текст вихідної програми, але, на відміну від компілятора, не формує машинний код у явному виді. Для кожної операції, яка вимагається при виконанні програми (мовою КЕНГУРУ), визначений відповідний набор команд, або процедура. Розпізнавши чергову операцію в програмі, інтерпретатор виконує відповідну процедуру, потім – процедуру наступної операції. Інтерпретатор – це перекладач і виконувач програми. Інтерпретатор виконує програму повільніше, ніж згенерований компілятором код. Але інтерпретатор може починати виконувати програму одразу, не витрачаючи час на генерацію коду. Використання інтерпретатора полегшує налагодження програми, оскільки помилки можуть бути одразу виправлені, а неправильні команди пропущені. Якщо певні дії розташовані в циклі, то розпізнавання тих самих конструкції відбувається багаторазово. Інтерпретатори мов програмування широко використовуються при побудові сучасних мов програмування таких, як Бейсик, Смолок, Ява (Інтерпретатор команд віртуальної машини Ява), JavaScript, навчальна мова Logo. При створенні нової мови програмування, такої, як КЕНГУРУ, визначається її синтаксис і семантика. Синтаксис мови – це правила формування правильних послідовностей символів, які належать цій мові, тобто, правильних текстів програм. Для визначення синтаксису мови КЕНГУРУ використовувалися правила у формі Бекуса-Наура та синтаксичні діаграми (просте графічне представлення правил Бекуса-Наура). Для представлення семантики (змісту операцій мови) використовується процедурний опис, що відповідає основним діям та уявленням персонажу КЕНГУРУ в віртуальному світ, що його оточує. ОСНОВНА ЧАСТИНА Основна ідея створення проекту полягає у створенні віртуального «світу» учбового персонажу КЕНГУРУ. Віртуальний світ складається з прямокутної області комірок, в одній з яких може розташовуватись кенгуру (якщо комірка вільна). Якщо комірка зайнята, то вона зафарбовується цеглиною (стіна). У вільних комірках можуть розташовуватись предмети – цукерки, в поточній версії не більше одної, в подальших версіях – дві, або більше. Кенгуру має сумку, в яку складає та з якої виймає предмети. Таким чином він може переміщувати цукерки з місця на місце. Конфігурація розташування цеглинок та позиції кенгуру називаються територією. Території зберігаються в файлі з розширенням *.ter та мають спеціальний формат символів, що позначають позицію та напрямок подальшого руху кенгуру, розташування цеглин та цукерками. Нижче наведено приклад файлу території: 20 8 #################### # # # # v 1 # ###### # ####S# # 1#11111 # # 1ST ###### # # ### ###### SS # #11# # #################### Призначення символів у файлі території «пробіл» - пуста комірка; два числа зверху (наприклад 20 8) – кількість рядків і колонок території; число в іншому місці (від 1 до 9) – кількість цукерок у комірці; # - стіна; v - напрям погляду персонажа вниз; ^ - напрям погляду персонажа вверх; > - напрям погляду персонажа вправо; < - напрям погляду персонажа ввліво; S – секретна комірка; T – цільова комірка. Графічна модель такої території виглядає наступним чином: Рис. 1 З правої сторони від зображення території знаходиться графічний елемент, в якому зображається траса всіх успішно виконаних дій кенгуру. Вікно моделювання має наступні кнопки панелі інструментів та відповідні пункти меню (перелік зліва направо як на панелі інструментів): Рис. 2 Створити територію, відкрити територію, зберегти територію, перемістити кенгуру, кількість цукерок в сумці кенгуру, поставити цукерку в комірку, поставити стіну в комірку, поставити цільову комірку, поставити секретну комірку, видалити з комірки (стіну, цукерку, і т.п), почати виконання програми, припинити виконання, регулятор швидкості виконання (коли повзунок зправа, кенгуру переміщується з максимально швидкістю). У вікні редактору знаходяться елементи для вибору та завантаження тексту програми з розширенням *.kanga та елемент Мемо для редагування тексту програми. Основні оператори – елементарні дії кенгуру: ВПЕРЕД – переміститись на одну клітину вперед у напрямку погляду (вверх, вниз, вправо, вліво). Команда виконується, якщо в цій клітині немає стіни, інакше видається попередження про неможливість виконання. ПОВЕРНИЛІВОРУЧ (ЛІВОРУЧ) – змінити напрямок погляду кенгуру на 90 градусів ліворуч. Рис. 3 ВІЗЬМИ – взяти цукерку з клітини, якщо хоч одна наявна в поточній позиції. ПОКЛАДИ – покласти цукерку в клітину поточної позиції, якщо хоч одна наявна в сумці кенгуру. Для перевірки логічних умов у вітуальному світі використовуються логічні вирази: тутЦукерка – повертає значення «вірно», якщо у комірці, де росташований кенгуру, наявна хоч одна цукерка, інакше повертає значення «невірно». попередуНемаєСтіни – повертає значення «вірно», якщо у сусідній комірці за напрямком руху кенгуру немає стіни, інікше «невірно». порожняСумка – повертає значення «вірно», якщо в сумці немає цукерок. не - заперечення. Для управління послідовнісю дій Кенгуру використовуються оператори умовного виконання та цикли. Оператор умовного виконання має наступний синтаксис: ОператорЯКЩО = ЯКЩО умова ТОДІ послідовністьОператорів [ ІНАКШЕ послідовністьОператорів ] КІНЕЦЬ наприклад ЯКЩО НЕ порожняСумка ТОДІ поклади КІНЕЦЬ Оператор циклу з умовою ОператорПОКИ = ПОКИ умова ВИКОНАТИ послідовністьОператорів КІНЕЦЬ ОператорПовторити = ПОВТОРИТИ число РАЗ (РАЗІВ) послідовність операторів КІНЕЦЬ Для формування понять що викликаються в програмі багато разів використовується поняття процедури (без аргументів) ПРОЦЕДУРА назва ПОЧАТОК послідовністьОператорів КІНЕЦЬ Наприклад поняття “ поверниПраворуч ” можна описати наступним чином ПРОЦЕДУРА поверниПраворуч ПОЧАТОК ПОВТОРИТИ 5 РАЗІВ поверниЛівороруч КІНЕЦЬ КІНЕЦЬ; Програма мовою КЕНГУРУ складається з набору процедур за якими слідують оператори головної програми ПРОГРАМА = послідовністьПроцедур ; слідовністьОператорів Наприклад для початкової території що показана нижче Рис. 4 виконання наступної програми ПРОЦЕДУРА біжиДоСтіни ПОЧАТОК ПОКИ попередуНемаєСтіни ВИКОНАТИ вперед КІНЕЦЬ КІНЕЦЬ; біжиДоСтіни; поверниЛіворуч; біжиДоСтіни; поверниЛіворуч; ПОКИ НЕ тутЦукерка ВИКОНАТИ поклади; біжиДоСтіни; поверниЛіворуч КІНЕЦЬ Приведе до такої поведінки КЕНГУРУ при якій він розкладе у кожному куті вільної території (яку він може обійти проти годинникової стрілки) по одній цукерці. Процедура біжиДоСтіни використовується щоб КЕНГУРУ пройшов всі вільні клітини доки він не упреться в стіну. Рис. 5 Нові можливості: Цільова комірка – комірка, що позначена на території прапорцем. Це комірка обов’язково має бути відвідана під час виконання програми. Може бути одночасно декілька цільових комірок. Під час відвідання цільових комірок вони «зтираються» крім тієї, де зупинився кенгуру в кінці програми. Таким чином при виконанні програми наочно видно, що відвідані всі цільові комірки. В протилежному випадку програма вважається некоректно написаною. Секретна комірка – комірка, вміст якої невідомий. У цій комірці може знаходитися одна цукерка, а може не міститися жодної. Факт наявності цукерки визначається динамічно від датчика випадкових чисел. Під час відвідання секретних комірок вони «розкриваються», тобто відображається їх зміст. Якщо в програмі при умові наявності цукерки не передбачена команда ВІЗЬМИ і цукерки залишаються після відвідування комірки, така програма вважається некоректно написаною. Рис. 6 В даному випадку кенгуру піднімається по сходах до цільової клітини, позначеної прапорцем і «розкриває» секретні комірки. Після «розкриття» комірок не має залишатися цукерок та кенгуру має зупинитись в цільовій клітині. Технічні дані проекту : Основна мова программуваня : Object Pascal (середовище Delphi) Додаткова мова программуваня : КЕНГУРУ. Додаткові формати файлів : файли розмітки території “віртуального світу” кенгуру ВИСНОВКИ Створено інтерпретатор мови програмування віртуального персонажу КЕНГУРУ, програмної оболонки для анімації віртуального персонажу на основі конструкцій однойменної мови програмування, який дозволяє учням проводити експерименти з основними операторами процедурної мови програмування. В подальшому розвитку проекту передбачається додавання до мови можливостей об’єктно-орієнтованого програмування та параллельного управління одночасним рухом та координацією багатьох персонажей. Також передбачається розробка типового набору задач з програмування на основі базісних територій, перевірка правильності виконання програми. Даний проект показує реальну можливість використання сучасних методів трансляції та інтерпретації програм для створення спеціалізованих учбових мов для допомоги учням в швидкому вивченні програмних конструкцій та методів програмування. Було використано сучаний ефективний метод рекурсивного спуску при якому кожній конструкції мови програмування відповідає окрема процедура, що здійнює синтаксичний розбір цієї конструкції, робить необхідні перевірки та викликає відповідні дії персонажу. Даний метод використовується для створення трансляторів сучасних мов програмування таких як Pascal, Oberon та С++. СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ 1. Свердлов С. З. Языки программирования и методы трансляции: Учебное пособие. - СПб.: Питер, 2007. – 638 с.: ил. 2. Еремин Е.А. Компилятор? Это довольно просто!: Методическое пособие.–Пермь: Изд-во Перм. рег. ин-та пед. информ. технол., 1998.–124 с. 3. Себеста Р. Основные принципы языков программирования, 5-е изд.: Пер. с англ. – М.: Издательский дом Вильямс, 2001. 4. Вирт Н. Алгоритмы и структуры данных: Пер. с англ. – М.: Мир, 1989. |
Тема по програмі Тема уроку: Adobe Photoshop головне меню програми. Adobe Photoshop його інструменти та їх використання. Прошарки та робота з ними.... |
Уроку української мови 6 клас "Теперішній час дієслів" Тема: Теперішній час дієслів Методи і прийоми навчання: інтерактивна гра «Продовжіть речення», робота з текстом, робота в групах, творча робота «Асоціації», робота... |
Уроку: узагальнити та систематизувати знання про типи мовлення опис Методи і прийоми: бесіда, метод передбачення, гронування, робота в парах, творча робота, самостійна робота |
Тема. Робота з об'єктами на робочому столі: виділення, переміщення,... Багатозадачна операційна система з графічним інтерфейсом, в якій основна робота проводиться з різноманітними об’єктами (ярлики, папки,... |
Робота в протигазах АСП-2 у Тема: Робота в протигазах АСП-2 у теплодимокамері. Вправа №3 „Оснащення ланки ГДЗС. Сигнали управління. Робота із засобами зв’язку... |
«Вибори» Принципи виборчого права (практикум – робота з текстом Конституції України та робота в малих групах) |
ТЕМА. Практична робота №20. Розробка проекту Мета Базові поняття й терміни: спільна робота, онлайновий документ, колективний проект |
Тема програми ... |
Тема уроку Практична робота №8. Розміщення посівів сільськогосподарських культур ( робота на контурній карті). Аналіз статистичних даних виробництва... |
Урок 4-5 Тема: Практична робота №2 «Робота з таблицями і зображеннями... Тема: Практична робота №2 «Робота з таблицями і зображеннями в текстовому документі» Практична робота №3 «Використання стилів та... |