Прикладная математика
УДК 519.682
О СИНТАКСИЧЕСКОМ АНАЛИЗЕ КОНТЕКСТНО-СВОБОДНЫХ ЯЗЫКОВ
В. В. Кишкан, И. В. Колбасина, А. М. Попов, Н. А. Попов, К. В. Сафонов*
Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31
E-mail: [email protected]
Разрабатывается подход к синтаксическому анализу контекстно-свободных языков, которые являются решением систем некоммутативных полиномиальных уравнений. Результаты имеют приложение в теории формальных языков.
Ключевые слова: контекстно-свободные языки, полиномиальные уравнения, формальный степенной ряд, синтаксический анализ.
TO SYNTAX ANALYSIS OF CONTEXT-FREE LANGUAGES
V. V. Kishkan, I. V. Kolbasina, A. M. Popov, N. A. Popov, K. V. Safonov*
Reshetnev Siberian State University of Science and Technology 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation E-mail: [email protected]
The article elaborates an approach to syntax analysis of context-free languages, which are solutions of noncommu-tative polynomial equations. The results have applications in formal language theory.
Keywords: context-free languages of polynomial equations, formal power series, syntactic analysis.
Рассматривается система полиномиальных уравнений:
Р (г,х) = 0,] = 1, ...,п, (1)
где г = (г1, ..., гп), х = (х1, ..., хт) - переменные из кольца с некоммутативной операцией умножения и коммутативной операцией сложения; для них определена также коммутативная операция умножения на комплексные числа.
Система (1) решается относительно переменных г1, ..., гп в виде формальных степенных рядов (ФСР) от переменных х1, ..., хт. Такие системы имеют прикладное значение, частности, они порождают определенные классы формальных языков: контекстно-свободных, непосредственно составляющих, в нормальной форме Грейбах и др.
В теории программирования система (1) рассматривается как грамматика над терминальными символами х1, . , хт - словами языка, и нетерминальными символами г1, ..., гп, необходимыми для задания грамматики [1-3]. Важное приложение таких уравнений лежит в области теории формальных языков и грамматик и теории автоматического управления [4].
Одной из важных проблем, связанных с разработкой систем и языков программирования, является проблема синтаксического анализа программ. Как было отмечено выше, большинство языков программирования является кс-языками, которые можно представить в виде ФСР, поэтому каждая программа, написанная на языке программирования, может рас-
сматриваться как моном соответствующего ФСР. В связи с этим рассмотрим проблему синтаксического анализа мономов кс-языка.
Для того, чтобы сформулировать эту проблему, рассмотрим грамматику кс-языка, которая является множеством правил подстановки
Г] ^ Ч]\(г,х), ...,г} ^ я]р. (г,х),] = 1, ...,п, (2)
где х) - мономом от некоммутативных символьных переменных с числовым коэффициентом, равным единице.
Правила подстановки можно применять к начальному символу Г\, а затем к другим мономам в любом порядке неограниченное число раз, что позволяют выводить новые правильные мономы, образующие кс-язык.
Итак, проблема синтаксического анализа мономов состоит в том, чтобы определить, принадлежит ли моном данному кс-языку, т. е. может ли быть получен из начального символа при помощи правил подстановки (2), а также установить, какие правила подстановки и сколько раз использовались при выводе этого монома; при этом порядок использования правил подстановки не имеет значения.
Метод беступикового синтаксического анализа, основанный на использовании мономиальных меток, был предложен в статье [1]. В соответствии с этим методом, каждое правило подстановки Г] ^ ]г,х) заменяется правилом Г] ^ ]]Г,х), имеющим моно-миальную метку ], которая является символом из расширенного алфавита, и для новых правил вывода
Решетневские чтения. 2017
рассматривается соответствующая система уравнении Хомского-Шутценберже:
. +
zj = Qj (Z X t) =: j qn (z, x) +.
+ jj (z,x), j = 1 n
(3)
Рассмотрим метод мономиальных меток, который позволяет провести синтаксический анализ монома v от терминальных символов xь ..., xm. Итерации метода последовательных приближений для системы уравнений (3) дают многочлены возрастающей степени относительно символов хь ..xm, /12, . • •, /прп при этом мономы степени не выше degx(v) относительно символов х1, ..., хт после конечного числа итераций стабилизируются, не меняясь при последующих итерациях. Таким образом, можно получить начальные члены решения системы (7) в виде ФСР до любой, сколь угодно высокой степени, в том числе члены ФСР, представляющего первую компоненту этого решения:
zi = ^Cxt) = S< z*'wi > wi ■
i=0
(4)
Синтаксический анализ монома V кс-языка г1(х) можно провести следующим образом. Считывая мономы степени degx(v) относительно символов х1, ..., хт и пропуская символы можно установить, есть ли среди них моном V, а значит, можно ли вывести его с помощью системы продукций (2). При этом каждая мономиальная метка содержащаяся в таком мономе, показывает, что при его выводе использовалось
правило Zj
tjkqjk(z,x). В самом деле, из системы
уравнений (3) и метода последовательных приближений нетрудно видеть, что, применяя это правило вывода к моному, мы умножаем его слева на символ //к. Следовательно, мономиальные метки монома решают проблему его синтаксического анализа, показывая, какие правила вывода кс-языка и сколько раз использовались при выводе этого монома, с точностью до порядка их применения.
Таким образом, имеет место следующая теорема [1].
Теорема. Метод мономиальных меток позволяет провести за конечное число шагов беступиковый синтаксический анализ любого монома (программы) кс-языка, заданного грамматикой (2).
Недостатком метода мономиальных меток является большое число громоздких итераций метода последовательных приближении, необходимых для получения ФСР, который представляет кс-язык, причём это число возрастает вместе с ростом степени монома, который анализируется. В связи с этим актуально найти другой путь для получения мономи-альных меток некоммутативного монома.
Кроме того, используя систему скобок при записи правил вывода, можно установить порядок их применения в случаях, когда это имеет смысл.
Библиографические ссылки
1. Сафонов К. В., Егорушкин О. И. О синтаксическом анализе и проблеме В. М. Глушкова распознавания контекстно-свободных языков Хомского // Вестник Томск. гос. ун-та. 2006, № 17. С. 63-67.
2. Safonov K. V. On conditions for the sum of a power series to be algebraic and rational // Mathematical Notes. 1987, № 3 (41). С. 185-189.
3. Safonov K. V. On Power Series of Algebraic and Rational functions in Cn // Journal of Math. Analysis and Applications. 2000. Т. 243. С. 261-277.
4. Salomaa A., Soitolla M. Automata-Theoretics Aspects of Formal Power Series. N.-Y.: Springer Verlag. 1978. 171 c.
References
1. Safonov K. V., Egorushkin O. I. [On syntax analysis and V. M. Glushkov's problem of recognition for context-free languages] // Vestnik TGU. 2006, no. 17. P. 63-67. (In Russ.)
2. Safonov K. V. On Conditions for the Sum of a Power Series to be Algebraic and Rational // Mathematical Notes. 1987. Vol. 3 (41). P. 185-189.
3. Safonov K. V. On Power Series of Algebraic and Rational functions in Cn // Journal of Math. Analysis and Applications. 2000. Vol. 243. P. 261-277.
4. Salomaa A., Soitolla M. Automata-Theoretics Aspects of Formal Power Series. N.-Y.: Springer Verlag. 1978, 171 p.
© Кишкан В. В., Колбасина И. В., Попов А. М., Попов Н. А., Сафонов К. В., 2017
—>