Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Практикум по лексичного аналізу

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Процес конструювання моделі ЛА може бути досить легко автоматизований. Для цього необхідна мова, що дозволяв би виконувати опис моделі ЛА в термінах кінцевих розпізнавачів. У загальному випадку в цій мові повинні бути присутнім засобу для опису безлічі вхідних символів ЛА, його вихідних символів (дескрипторів), безлічі станів і правил переходу автоматів-розпізнавачів лексем відповідних класів… Читати ще >

Практикум по лексичного аналізу (реферат, курсова, диплом, контрольна)

Процес конструювання моделі ЛА може бути досить легко автоматизований. Для цього необхідна мова, що дозволяв би виконувати опис моделі ЛА в термінах кінцевих розпізнавачів. У загальному випадку в цій мові повинні бути присутнім засобу для опису безлічі вхідних символів ЛА, його вихідних символів (дескрипторів), безлічі станів і правил переходу автоматів-розпізнавачів лексем відповідних класів з одних станів в інші.

Розробка й налагодження моделі ЛА в системі здійснюється в інтерактивному режимі в рамках віконного інтерфейсу Windows.

Мова опису лексики Мова опису лексики (МОЛ) призначений для автоматизованої розробки й дослідження (тестування) моделі лексичного рівня опису мови програмування. Результатом інтерпретації програми на МОЛ є потік образів класів лексем, виділених у вихідній мові. На відміну від реального ЛА інтерпретатор з МОЛ не формує вихідних таблиць ЛА и тому коди дескрипторів розрізняються в ньому на рівні імен класів лексем.

МОЛ можна використовувати й для програмування властиво кінцевих розпізнавачів. У цьому випадку на виході інтерпретатора формуються стандартні виходи детермінованого кінцевого розпізнавача: ДОПУСТИТИ або ВІДКИНУТИ. Даний варіант використання МОЛ добре підходить для моделювання синтаксичного контролю пропозицій мови програмування.

Лексичний рівень МОЛ.

У МОЛ виділені наступні класи лексем:

  • · ключові слова;
  • · директиви;
  • · ідентифікатори;
  • · роздільники.

До ключових слів ставляться: KeyWords, EndWords, Lexema, End, Space, Any, Code, NoGen. Задавати їх можна як за допомогою прописних, так і малих літер. Ідентифікатором є будь-яка послідовність букв і цифр. Для ідентифікаторів мають розходження прописні й малі літери.

^роздільникам ставляться: кутові дужки; круглі дужки (); квадратні дужки []; дві крапки.; знак дорівнює =; перехід — >. До директив ставляться: %NOUPCASE, %UPCASE.

Синтаксис МОЛ у формі нотації БНФ.

Програма на МОЛ представляє із себе послідовність описів основних і допоміжних лексем. Опис лексеми задається у вигляді команд кінцевого детермінованого розпізнавача, при цьому в одному рядку записується одна команда.

Лексема є основний, якщо після успішного її розпізнавання на виході ЛА формується її образ — дескрипторный код. Ознакою основної лексеми є наявність у її заголовку опції соdе=, тут — образ лексеми у вихідному потоці - дескриптор.

Програмування моделей лексичного аналізу.

Опис распознавателя (лексеми) завжди починається із ключового слова Lexema і закінчується ключовим словом End. Після слова Lexema у кутових дужках вказується ім'я лексеми. Це ім'я можна використовувати усередині описів інших лексем. Якщо лексема основна, то в опції Code вказується буквено-цифрове кодування образа лексеми на виході ЛА.

Команди переходів распознавателя лексеми задаються у вигляді:

— > .

— це будь-яка послідовність із цифр і (або) букв. Причому ім'я Z є зарезервованим і відповідає заключному стану кінцевого автомата. Імена станів є локальними для даного розпізнавача, тобто в распознавателях для різних лексем можна використовувати ті самі ідентифікатори для іменування внутрішніх станів распознавателя. Початковим станом распознавателя є ім'я в лівій частині його першої команди.

Імена вхідних символів є глобальними — однакові імена позначають те саме в різних лексемах. Діапазон значень символів задається у квадратних дужках і визначає початковий і кінцевий символи діапазону (відповідно до кодування ASCII), розділені двома крапками. Будь-який вхідний символ із заданого діапазону буде викликати перехід у наступний стан розпізнавача. Ім'я раніше описаної лексеми записується в кутових дужках.

На вхід інтерпретатора описи ЯОЛ може подаватися будь-яку кількість прикладів ланцюжків вхідної мови. При надходженні на вхід ЛА помилкової лексеми, він відразу припиняє роботу з видачею повідомлення про помилку. Лексичні одиниці друг від друга можуть відділятися будь-яким числом пробілів. Пробіли не можуть використовуватися як префікс лексеми. Пробіли, що розділяють лексеми після розпізнавання поточної лексеми, віддаляються із вхідного ланцюжка.

Якщо в безліч ланцюжків, описуваних конкретною лексемою обов’язково входить символ пробіл, то для його розпізнавання застосовується ключове слово Space.

Вихід з распознавателя поточної лексеми й початок розпізнавання наступної здійснюється після переходу распознавателя в заключний стан Z. Як умова виходу при переході в стан Z може використовуватися:

  • ? ключове слово Any, у цьому випадку вихід здійснюється по будь-якому символі, не приналежній безлічі переходів для даного стану (включаючи пробіл), які можуть бути першими в інших лексемах, при цьому всі пробіли до першого значущого символу віддаляються із вхідного тексту;
  • ? символ, що є останнім символом лексеми; якщо після цього символу у вхідному рядку є пробіли, то вони також віддаляються із вхідного тексту;
  • ? ім'я раніше описаної лексеми.

У МОЛ є можливість описувати ключові (зарезервовані) слова шляхом їхнього перерахування. Виконується це в секції KeyWords. EndWords у вигляді послідовностей пара . Секція в програмі повинна бути єдиної, і в програмі повинен бути описаний рівно один розпізнавач, у заголовку якого зазначений параметр (KeyWords). Цей параметр указує на те, що при успішному розпізнаванні лексеми даного класу буде здійснюватися перевірка приналежності його до ключових слів і у випадку успіху на вихід Л, А буде передаватися код лексеми ключового слова, а не той, котрий заданий в опції Code при описі класу.

Для вхідного ланцюжка aaaa adfrt read dftg write на виході даного ЛА буде згенеровано дескрипторний код виду 101 101 51 101 52.

Моделювання поводження властиво ДКА на ЯОЛ проводиться аналогічно, відмінність лише в тім, що програма моделювання ДКА може містити безліч описів допоміжних лексем і лише один опис основної лексеми з параметром code=ДОПУСТИТИ. Нижче наведений приклад опису моделі ДКА для розпізнавання спрощеного варіанта запису оператора with мови Паскаль.

Розділ 3. Синтаксичний аналіз.

Розділ 4. Семантичний аналіз та генерація коду об'єктної програми.

Розділ 5. Системи автоматизації конструювання синтаксичних аналізаторів (на прикладі ANTLR).

Розділи мають назви та номери. Кожен з розділів містить декілька параграфів. Параграфи також мають назви та номери. Нумерація параграфів є наскрізною.

За формою електронний підручник є окремим програмним модулем, який розроблюється на основі електронного підручника лінійки програмних засобів Терм.

  • · Навчальний матеріал структуровано як гіпертекст.
  • · Система навігації реалізована у вигляді меню «Зміст» .
  • · Контрольні питання є тестами.

Електронний Підручник є гіпертекстом, який структурований за змістом. Зміст підручника представлений у лівій частині вікна підручника — полі Зміст. Для того, щоб відкрити потрібний розділ або параграф підручника, треба натиснути мишкою на відповідний рядок поля Зміст з заголовком цього розділу або параграфа (рис. 2.3).

Інтерфейс.

Рис. 2.3 Інтерфейс

Крім навігації за змістом, можна користуватися і посиланнями-ключовими словами. Посилання в підручнику встановлені на інші його параграфи. Ключові слова виділені іншим кольором. Для того, щоб перейти до параграфа, на який вказує ключове слово, треба натиснути мишкою на цьому слові. Підручник відкриється на потрібному параграфі викладеного курсу.

Практично кожний з параграфів завершується кількома питаннями для самоперевірки знань. Перевірку знань здійснює спеціальний програмний модуль «Питання» . Для того, щоб приступити до відповіді на питання, треба натиснути на кнопку Перевір себе.

Функції ПМ «Підручник» .

Завершення роботи з підручником Для того, щоб завершити роботу з підручником, треба перейти на іншу закладку змісту головного вікна ПМ «Робоче місце вчителя» .

Навігація Вибираючи новий параграф підручника за змістом або ключовим словом, користувач відкриває цей параграф підручника. Для того, щоб повернутися до того параграфу, з якого він зробив цей вибір, треба виконати команду головного меню Навігація/Назад.

Коли Ви повернулися назад до деякого параграфа підручника, Ви можете знову перейти до того параграфа, з якого Ви щойно повернулися назад. Для того, щоб зробити це, треба виконати команду головного меню Навігація/Вперед.

Таким чином, користувач підручника створює шлях навігації по параграфам підручника. Кроки на цьому шляху виконуються командами Назад, Вперед.

Показати весь текст
Заповнити форму поточною роботою