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

Регулярні мови, кінцеві автомати й лексичний аналіз

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

Матриця переходів КА будується в такий спосіб: стовпці матриці відповідають символам із вхідного алфавіту, рядка — символам з алфавіту станів, а елементи матриці відповідають станам, у які переходить КА для даної комбінації вхідного символу й символу стану. Якщо КА виявляється в ситуації (,), що не є лівою частиною якої-небудь команди, то він зупиняється. Якщо ж УУ вважає всі символи ланцюжка а… Читати ще >

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

Розробка лексичного аналізатора виконується досить просто, якщо при цьому скористатися добре розробленим математичним апаратом — теорією регулярних мов і кінцевих автоматів. У рамках цієї теорії класи однотипних лексем (ідентифікатори, константи й т.д.) розглядаються як формальні мови (мова ідентифікаторів, мова констант і т.д.), безліч пропозицій яких описується за допомогою відповідної граматики, що породжує. При цьому мови ці настільки прості, що вони породжуються найпростішої із граматик — регулярною граматикою (граматика класу 3 в ієрархії Хомского). Побудована регулярна граматика є джерелом, по якому надалі конструюється обчислювальний пристрій, що реалізує функцію розпізнавання пропозицій мови, породжуваного даною граматикою. Для регулярних мов таким пристроєм є кінцевий автомат. Нижче будуть розглянуті основні поняття теорії регулярних мов і кінцевих автоматів і її практичне використання при розробці алгоритмів ідентифікації лексем.

2.2.1 Граматика, Що Породжує, G =, правила який мають вигляд: А — > ав або З — > b, де А, В, З N; a, b T називається регулярної (автоматної).

Мова L (G), породжуваний автоматною граматикою, називається автоматним (регулярним) мовою або мовою з кінцевим числом станів.

Математичною моделлю процесу розпізнавання регулярної мови є обчислювальний пристрій, що називається кінцевим автоматом (КА). Термін «кінцевий» підкреслює те, що обчислювальний пристрій має фіксований і кінцевий обсяг пам’яті й обробляє послідовність вхідних символів, що належать деякій кінцевій безлічі. Існують різні типи КА, якщо функцією виходу КА (результатом роботи) є лише вказівка на те, припустима чи ні вхідна послідовність символів, такий КА називають кінцевим розпізнавателем. Саме цей тип КА надалі ми й будемо розглядати.

2.2.2 Визначення Кінцевим автоматом називається наступна п’ятірка: А =, де V = {а1 а2,., am — вхідний алфавіт (кінцева безліч символів);

— алфавіт станів (кінцева безліч символів);

— функція переходів;

— початковий стан кінцевого автомата;

— безліч заключних станів.

На змістовному рівні функціонування КА можна представити в такий спосіб.

Схематично конструкція КА показана на рис. 2.2.

Схема кінцевого автомата.

Рис. 2.2 Схема кінцевого автомата

Відображення (функцію переходів КА) можна представити різними способами. Основні з них:

сукупність команд;

діаграма станів;

матриця переходів.

Команда кінцевого автомата записується в такий спосіб:

Регулярні мови, кінцеві автомати й лексичний аналіз.

Дана команда позначає, що КА перебуває в стані, читає зі стрічки символ, а й переходить у стан .

Графічно команда представляється у вигляді дуги графа, що йде з вершини у вершину й позначеної символом вхідного алфавіту:

Регулярні мови, кінцеві автомати й лексичний аналіз.

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

Якщо КА виявляється в ситуації (,), що не є лівою частиною якої-небудь команди, то він зупиняється. Якщо ж УУ вважає всі символи ланцюжка а, записаної на стрічці, і при цьому перейде в заключний стан, то говорять, що ланцюжок допускається кінцевим автоматом.

Матриця переходів КА будується в такий спосіб: стовпці матриці відповідають символам із вхідного алфавіту, рядка — символам з алфавіту станів, а елементи матриці відповідають станам, у які переходить КА для даної комбінації вхідного символу й символу стану.

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

Нехай задана регулярна граматика G =, правила який мають вигляд: або, де й .

Тоді кінцевий автомат, А = 0, F>, що допускає та ж сама мова, що породжує регулярна граматика G, будується в такий спосіб [7]:

  • 1) V = T;
  • 2) Z — заключний стан КА;
  • 3) q0 = {S};
  • 4) F = {Z};
  • 5) Відображення будується у вигляді:

кожному правилу підстановки в граматиці G виду ставиться у відповідність команда ;

кожному правилу підстановки виду ставиться у відповідність команда ;

Розрізняють детерміновані й недетерміновані кінцеві автомати. КА називається недетермінованим КА (НДКА), якщо в діаграмі його станів з однієї вершини виходить кілька дуг з однаковими позначками.

У загальному випадку може бути запропонований наступний порядок конструювання лексичного аналізатора:

Крок 1. Виділити у вхідній мові L (G) на підставі опису його синтаксису за допомогою Кс-Граматики G безліч класів лексем Li, l.

Крок 2. Побудувати для кожного класу лексем Li автоматну граматику Gi, що породжує мова Li, тобто Li = L (Gi).

Крок 3. Для кожної автоматної граматики Gi побудувати діаграму станів Di — неформальну модель распознавателя мови L (Gi).

Крок 4. Визначити умови виходу з ЛА (перехід ЛА в початковий стан) при досягненні кінця довільної лексеми з кожного класу лексем L (Gi).

Крок 5. Розбити символи вхідного алфавіту на непересічні класи.

Крок 6. Побудувати матрицю переходів лексичного аналізатора.

Крок 7. Вибрати формат і код образів лексем-дескрипторів виду (, адреса в таблиці>).

Крок 8. Запрограмувати семантичні підпрограми і розпізнати за склеєною діаграмою переходів.

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