Page 27 - 4625
P. 27

Формальне  визначення  класу  лексем  мови  програму-
            вання  можна  виконати одним з  нижченаведених способів:
                    за допомогою праволінійних граматик;
                   за допомогою скінчених автоматів;
                    за допомогою регулярних виразів;
                    перелічити  лексеми  даного  класу  як  скінченну
            множину елементів;
                  Перші  три  способи  визначення  класів  лексем  за  своєю
           потужністю еквівалентні. Якщо деякий клас лексем мови про-
           грамування скінченна множина, то одним з тривіальних способів
           визначення лексем цього класу є їх перерахування.
                  Наприклад: клас однолітерних кодів операцій мови про-
           грамування  С  можна визначити як скінченну множину:
                                  L = { +, -, /, *, ….}.
                                    0
                  Сформулюємо  фундаментальне  твердження  теорії  гра-
             матик  та  автоматів: клас  мов,  які розпізнаються  скінченними
             автоматами,  співпадає  з  класом  мов визначених  праволіній-
             ними  граматиками  ті  регулярними  виразами  та  навпаки.
             Відмітимо,  що  аналіз  досвіду  використання  перелічених  за-
             собів визначення класів лексем показує, що скінченні автомати
             знайшли широке використання при розробці  лексичних  ана-
             лізаторів  для  конкретних  мов  програмування,  а  регулярні
             вирази та праволінійні граматики широко використовують у
             системах автоматизації побудови мовних процесорів як засоби
             високого рівня денотативності опису класів лексем.
                  Розглянемо можливі варіанти використання різних підхо-
             дів   визначення класів лексем мов програмування та їх реалі-
             зацію  в  мовних  процесорах.  Продемонструємо  два  підходи
             розробки  програмних  модулів,  які  розпізнають  множину
             ланцюжків  (лексем),  що  допускає  скінченний  автомат,
             діаграма переходів котрого зображена на (рис.1).
                  Скінченний автомат має:
                    множину станів Q={q , q , q , q , q , q 5, …,  q };
                                                     3
                                              1
                                                 2
                                          0
                                                                   17
                                                        4
                   вхідний алфавіт ={0,1,..9, A, B,..F, a, b,..f, X, x, L, l, U,
            u};
                                           26
   22   23   24   25   26   27   28   29   30   31   32