Page 28 - 4625
P. 28
початковий стан q ;
0
множину заключних станів F= Q\{q , q };
12
0
відображення визначено діаграмою переходів.
Програму, яка розпізнає множину лексем, реалізуємо дво-
ма способами:
перший спосіб: створимо програмний модуль, роботою
котрого керує таблиця управління скінченного автомата М( ,
), яка визначається в програмі явно;
другий спосіб: розробимо програмний модуль з управ-
лінням за номером поточного стану скінченного автомата та
поточною вхідною літерою.
2.8 Методика програмування лексичних аналізаторів
на основі скінчених автоматів
Продемонструємо використання методики програмуван-
ня лексичних аналізаторів на прикладі лексичного аналізатора
для мови програмування С. Множину лексем мови програму-
вання С розіб'ємо на такі класи:
зарезервовані слова (підмножина ідентифікаторів);
цілочислові константи (тип int);
дійсні константи (типи double, float);
літерні константи (тип char);
рядкові константи (масиви елементів базового типу
char);
коментарі;
коди операцій та спеціальні символи;
символи, які не мають семантичної інтерпретації,
окрім як роздільники лексем (проміжок, \n, \v, \r, \t, \b, \0
тощо).
Побудуємо діаграму переходів об’єднаного скінченного
автомата для лексичного аналізатора мови програмування С –
(рис. 8).
27