Научная статья на тему 'Синтаксический анализ контекстно-свободных языков с учетом порядка применения продукции'

Синтаксический анализ контекстно-свободных языков с учетом порядка применения продукции Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
49
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИНТАКСИЧЕСКИЙ АНАЛИЗ / ПОРЯДОК ПРИМЕНЕНИЯ ПРОДУКЦИИ / МЕТОД МОНОМИАЛЬНЫХ МЕТОК / SYNTACTIC ANALYSIS / ORDER OF PRODUCTS APPLICATION / MONOMIAL LABEL METHOD

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кишкан В.В., Колбасина И.В., Сафонов К.В.

Рассмотрена расширенная проблема синтаксического анализа, учитывающая порядок применения продукции, и предложен метод мономиальных меток для её решения.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SYNTACTIC ANALYSIS OF CONTEXT-FREE LANGUAGES WITH REGISTRATION OF APPLICATION PRODUCTS

The extended problem of parsing is considered, taking into account the order of application of products and the method of monomial labels is proposed to solve it.

Текст научной работы на тему «Синтаксический анализ контекстно-свободных языков с учетом порядка применения продукции»

Решетневские чтения. 2018

УДК 519.682

СИНТАКСИЧЕСКИЙ АНАЛИЗ КОНТЕКСТНО-СВОБОДНЫХ ЯЗЫКОВ С УЧЕТОМ ПОРЯДКА ПРИМЕНЕНИЯ ПРОДУКЦИИ

В. В. Кишкан, И. В. Колбасина, К. В. Сафонов

Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31

E-mail: kishkan@mail.ru

Рассмотрена расширенная проблема синтаксического анализа, учитывающая порядок применения продукции, и предложен метод мономиальных меток для её решения.

Ключевые слова: синтаксический анализ, порядок применения продукции, метод мономиальных меток.

SYNTACTIC ANALYSIS OF CONTEXT-FREE LANGUAGES WITH REGISTRATION

OF APPLICATION PRODUCTS

V. V. Kishkan, I. V. Kolbasina, K. V. Safonov

Reshetnev Siberian State University of Science and Technology 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation E-mail: kishkan@mail.ru

The extended problem of parsing is considered, taking into account the order of application of products and the method of monomial labels is proposed to solve it.

Keywords: syntactic analysis, order of products application, monomial label method.

Исходным объектом в теории формальных языков и грамматик является алфавит, т. е. множество символов, г1, ..., г„, х1, ..., хт. Над этими символами определена некоммутативная операция умножения (конкатенации) и коммутативная операция формальной суммы; алфавит вместе с этими операциями образует полукольцо [1; 2].

Символы x1,

xm называются терминальными

символами и интерпретируются как словарь формального языка, а символы г1, ..., гп называются нетерминальными и нужны для задания совокупности грамматических правил (грамматики), которые порождают язык. По этим правилам определяются «правильные» мономы от терминальных символов х1, ., хт, которые интерпретируются как правильные предложения языка [1; 2].

Для важного с прикладной точки зрения класса контекстносвободного языков (КС языков) грамматика представляет собой совокупность правил подстановки (продукций):

qjk(z, x), j = 1, ..., n, k = 1, ...,Pj,

где д,^, х) - заданные мономы от символов г = (г1, ..., гп),

х (х1, хт).

Продукции применяются к начальному символу г1, а затем к другим символам в мономам неограниченное число раз в любом порядке, что позволяет выводить новые мономы, которые и образуют КС-язык.

Отметим, что прикладная значимость класса КС-языков определяется тем, что ему принадлежит

большинство языков программирования. Если язык программирования рассматривать как формальный степенной ряд (ФСР) от терминальных символов х1, ..., хт языка, то каждый моном ФСР представляет собой программу, написанная на этом языке.

Как известно, проблема синтаксического анализа мономов КС языка состоит в том, чтобы решить обратную задачу: разработать беступиковый алгоритм для определения, принадлежит ли моном данному кс-языку, т. е. может ли быть получен из начального символа г1 при помощи продукций (этап синтаксического контроля), а также установить, какие продукции и сколько раз использовались при выводе этого монома (этап синтаксического разбора); при этом традиционно считается, что порядок использования продукций не имеет значения [1].

Однако без знания порядка применения продукций получить нужный моном нельзя, поскольку применение к некоторому моному двух продукций в различном порядке может дать различный результат (привести к двум различным мономам).

Так, рассмотрим продукции г1 ^ г1г2, г2 и моном 11х2. Применив к нему первую продукцию, а затем вторую, получим моном г1г2г1г2т,1. Если же применить сначала вторую продукцию, а затем первую, получим моном г1г2г211г2.

В связи с этим дополним проблему синтаксического анализа: разработать беступиковый алгоритм для определения, можно ли получить моном из начального символа г1 при помощи продукций данного КС-языка, установить, какие продукции, сколько раз

Прикладная математика

и в каком порядке использовались при выводе этого монома.

Как оказалось, для решения «дополненной» проблемы синтаксического анализа пригоден метод мо-номиальных меток, который ранее был предложен для решения «традиционной» проблемы синтаксического анализа мономов КС языки.

В работе [3] предложен метод мономиальных меток, который позволяет провести беступиковый синтаксический анализ монома V от терминальных символов хь ..., хт. Метод мономиальных меток состоит в следующем.

Сначала каждое правило подстановки 2, ^ —2, х) заменяется правилом 2^ ^ х), имеющим моно-

миальную метку которая является символом из расширенного алфавита. Затем для новых правил вывода рассматривается соответствующая система уравнений Хомского-Щутценберже:

= 0*/?х,() = Ып(2, X) + ... + —2, х), - = 1, ... ,п.

Далее, решение этой системы можно получить методом последовательных приближений. Как результат, решение получается в виде ФСР.

Синтаксический анализ монома V кс-языка 21(х) можно провести следующим образом. Считывая в полученном ФСР мономы степени degx(v) относительно символов х1, ..., хт и пропуская сим волы можно установить, есть ли среди них моном V, а зна-

чит, с его помощью системы продукций, какие продукции и сколько раз использовать для этого.

Библиографические ссылки

1. Глушков В. М., Цейтлин Г. Е., Ющенко Е. J. Алгебра, языки, программирование. Киев : Наукова думка. 1974. 328 с.

2. Salomaa A., Soittola М. Automata-Theoretic Aspects of Formal Power Series. N.Y. : Springer-Verlag. 1978. 288 p.

3. Сафонов К. В., Егорушкин О. И. О синтаксическом анализе и проблеме В. М. Глушкова распознавания контекстно-свободных языков Хомского // Вестник Томск. гос. ун-та. Приложение. 2006. № 17. С. 63-66.

References

1. Glushkov V. M., Tseitlin G. E., Yushchenko E. J. Algebra, languages, programming. Kiev: Naukova Dumka. 1974. 328 p.

2. Salomaa A., Soittola M. Automata-Theoretic Aspects of Formal Power Series. N.Y.: Springer-Verlag. 1978. 288 p.

3. Safonov K. V., Egorushkin OI On the syntactic analysis and the problem of VM Glushkov recognition of context-free languages Chomsky // Bulletin of Tomsk State University. Application. 2006. № 17. P. 63-66.

© Кишкан В. В., Колбасина И. В., Сафонов К. В., 2018

i Надоели баннеры? Вы всегда можете отключить рекламу.