2017 Математические основы информатики и программирования №37
МАТЕМАТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ
УДК 519.682
О ПРИМЕНЕНИИ МНОГОМЕРНОГО КОМПЛЕКСНОГО АНАЛИЗА В ТЕОРИИ ФОРМАЛЬНЫХ ЯЗЫКОВ И ГРАММАТИК1
О. И. Егорушкин, И. В. Колбасина, К. В. Сафонов
Сибирский государственный университет науки и технологий им. акад. М. Ф. Решетнёва,
г. Красноярск, Россия
Исследуются системы полиномиальных уравнений над полукольцом (относительно символов с некоммутативным умножением и коммутативным сложением). Такие системы уравнений интерпретируются как грамматики формальных языков и решаются относительно нетерминальных символов в виде формальных степенных рядов, зависящих от терминальных символов. Рассматривается коммутативный образ системы уравнений в предположении, что символы являются переменными, принимающими значения из поля комплексных чисел. Устанавливаются связи между решениями системы некоммутативных символьных уравнений и её коммутативного образа, тем самым методы многомерного комплексного анализа привлекаются в теорию формальных языков и грамматик. Доказывается дискретный аналог теоремы о неявном отображении для формальных грамматик: достаточным условием существования и единственности решения системы некоммутативных уравнений в виде формальных степенных рядов является отличие от нуля якобиана коммутативного образа этой системы. Предложен также новый метод синтаксического анализа мономов контекстно-свободного языка как модели языков программирования, основанный на интегральном представлении синтаксического многочлена программы. При этом показано, что интеграл фиксированной кратности по циклу позволяет найти синтаксический многочлен монома (программы) с неограниченным числом символов, что даёт новый подход к проблеме синтаксического анализа.
Ключевые слова: формальный степенной ряд, коммутативный образ, синтаксический анализ, интегральное представление.
БСТ 10.17223/20710410/37/6
Исследование выполнено при финансовой поддержке РФФИ и Правительства Красноярского края в рамках научного проекта №17-47-240318.
ON APPLICATION OF MULTIDIMENSIONAL COMPLEX ANALYSIS IN FORMAL LANGUAGE AND GRAMMAR THEORY
O.I. Egorushkin, I. V. Kolbasina, K.V. Safonov Reshetnev State University of Science and Technology, Krasnoyarsk, Russia E-mail: [email protected]
Systems of polynomial equations over a semiring (with respect to symbols with a non-commutative multiplication and a commutative addition) are investigated. These systems of equations are interpreted as the grammars of formal languages and are resolved with respect to the non-terminal symbols in the form of the formal power series (FPS) depending on the terminal symbols. The commutative image of the system of equations is determined under the assumption that the symbols are variables taking values from the field of complex numbers. The connections between solutions of the non-commutative symbolic system of equations and its commutative image are established, thus the methods for multidimensional complex analysis are involved in the theory of formal language grammars. A discrete analogue of implicit mapping theorem onto formal grammars is proved: a sufficient condition for the existence and the uniqueness of a solution of a non-commutative system of equations in the form of FPS is the inequality to zero of the Jacobian of the commutative image of this system. A new method for syntactic analysis of the monomials of a context-free language as a model of programming languages is also proposed. The method is based on the integral representation of the syntactic polynomial of a program. It is shown that the integral of a fixed multiplicity over a cycle allows finding the syntactic polynomial of a monomial (program) with the unlimited number of symbols, that gives a new approach to the problem of syntactic analysis.
Keywords: formal power series, commutative image, syntactic analysis, integral representation.
Введение
В теории формальных языков и грамматик исходным объектом является алфавит {z1,... , zn,xi,..., xm}, над которым определена некоммутативная операция умножения (конкатенации) и коммутативная операция формальной суммы; алфавит вместе с операциями образует полукольцо. Символы x1,... ,xm называются терминальными символами и составляют словарь формального языка, а символы z1,... , zn — нетерминальными и нужны для задания совокупности грамматических правил (грамматики), которые порождают язык. По этим правилам определяются «правильные» мономы от терминальных символов x1,... ,xm, которые являются правильными предложениями языка. Кроме того, определена коммутативная операция умножения символов алфавита на комплексные числа, что позволяет рассматривать символьные многочлены и формальные степенные ряды (ФСР) с числовыми коэффициентами. При этом формальным языком является такой ФСР, членами которого являются все правильные мономы, определённые данной грамматикой [1, 2].
Заметим, что порождающую грамматику для важных классов формальных языков можно записать в виде системы символьных полиномиальных уравнений
Pj (z,x) = 0, Pj (0, 0) = 0, j = l,...,k, (1)
которая решается относительно символов ... , гп) = г в виде ФСР, зависящих от символов (х1,... , хт) = х: г = г(х) = (г1(х),..., гп(х)); при этом ФСР г1(х) является формальным языком, который определяется этой грамматикой.
Так, для класса контекстно-свободных языков (кс-языков) система символьных уравнений (1) может быть представлена в виде системы уравнений Хомского — Щут-ценберже
гз — Яэ (г,х) = §,3 = 1,...,п, (2)
где правые части удовлетворяют естественным условиям: Я у(0,0) = 0, многочлены Яэ(г, 0) не содержат линейных членов [1]. Отметим, что классу кс-языков принадлежит большинство языков программирования [2].
Более широкий класс языков непосредственно составляющих задаётся системой символьных уравнений
ту (г, х) — Ыу (г, х) = 0, ] = 1,... ,к,
где ту (г, х) —моном, а Ыу (г, х) —многочлен [2], которая также является частным случаем системы символьных уравнений (1).
Наконец, отметим языки в нормальной форме Грейбах, которые также можно задать системой символьных полиномиальных уравнений (1), где все многочлены Ру (г, х) имеют степень не выше второй, вводя при необходимости новые терминальные и нетерминальные символы [2].
Таким образом, исследуя систему символьных полиномиальных уравнений (1), можно изучать свойства порождаемых ею формальных полиномиальных языков, в том числе языков из наиболее важных классов. Однако свойства некоммутативной системы уравнений (1) изучены мало. Так, в частном случае системы уравнений Хомского — Щутценберже (2) известно, что она имеет единственное решение г = (г1 (х),... ,гп(х)) в виде ФСР, но в общем случае условия разрешимости системы уравнений (1) неизвестны.
Для исследования нет подходящих методов: исключению неизвестных препятствует некоммутативность умножения и отсутствие операции деления. Например, методы дискретной математики, в частности теории графов, традиционно играющие важную роль в теории формальных языков и грамматик, не вполне приспособлены для исследования некоммутативной системы уравнений (1).
В случае коммутативных неизвестных системы полиномиальных уравнений изучаются в рамках алгебраической геометрии методами коммутативной алгебры. Если при этом рассматривать неизвестные над алгебраически замкнутым полем комплексных чисел, то можно использовать также методы многомерного комплексного анализа [3]. Однако методы коммутативной алгебры и комплексного анализа не выглядят удобными для изучения систем полиномиальных уравнений (1) с неизвестными, некоммутативными по умножению.
Таким образом, дальнейшее развитие теории формальных полиномиальных языков и грамматик (каждая грамматика может быть рассмотрена как система таких уравнений) затрудняется отсутствием подходящих методов, возникающих как в дискретной математике, так и в коммутативной алгебре и комплексном анализе. И всё же привлечь в теорию формальных языков и грамматик методы многомерного комплексного анализа можно на основе следующего подхода, предложенного в работах [4, 5].
Этот подход состоит в том, что наряду с некоммутативной системой (1) рассматривается её коммутативный образ, который получается в предположении, что все
переменные, входящие в систему, принимают значения из поля комплексных чисел. Коммутативный образ этой системы уравнений является системой полиномиальных уравнений в пространстве СП+т, а коммутативный образ формального языка становится кратным степенным рядом, представляющим алгебраическую функцию в Ст, которая является решением этой системы. Далее можно исследовать коммутативный образ системы уравнений (1), применяя методы многомерного комплексного анализа. Наконец, остаётся установить, какие свойства некоммутативной системы уравнений (1) вытекают из свойств её коммутативного образа [4, 5].
В рамках этого подхода было отмечено, что из совместности некоммутативной системы (1) следует совместность её коммутативного образа, однако обратное утверждение неверно [4, 5]. В результате вопрос об исследовании некоммутативной системы (1) по свойствам её коммутативного образа оставался открытым.
Цель данной работы состоит в том, чтобы сделать следующий шаг по реализации указанного подхода, применяя в теории формальных языков и грамматик новые для неё методы многомерного комплексного анализа: во-первых, получить достаточное условие совместности (и единственности решения в виде ФСР) системы уравнений (1); во-вторых, решить важную прикладную задачу синтаксического анализа любой программы, написанной на кс-языке программирования.
Ниже доказано достаточное условие разрешимости некоммутативной системы (1) в терминах якобиана её коммутативного образа, а также предложен новый подход к проблеме синтаксического анализа, состоящий в том, что можно осуществить синтаксический анализ программы, переходя от «программирования к интегрированию» — вычислив кратный интеграл по циклу от некоторой рациональной формы.
1. Коммутативный образ ФСР
Упорядочим члены ФСР, следуя [4, 5]. Пусть все мономы от х\,... ,хт сгруппированы в однородные многочлены, расположенные по возрастанию степеней, затем перенумеруем мономы каждого из многочленов в лексикографическом порядке, переходя от меньшей степени к большей. При таком упорядочивании все мономы от символов Х1,... , хт единственным образом записываются в виде последовательности и0, и1,..., играющей роль базиса ФСР. Теперь каждый ряд в можно однозначно записать в виде разложения по этому базису:
те
в = Е (в,и*)и*, (3)
г=0
где (в, и) —числовой коэффициент при мономе иг.
Поставим в соответствие ФСР (3) его коммутативный образ о1(в) —степенной ряд, который получается из в в предположении, что символы х1, . . . , хт (равно как и г1,...,гп) обозначают коммутативные переменные, принимающие значения из поля комплексных чисел.
В этом предположении любой моном иг от символов х1 ,...,хт можно записать в виде х?1 • ... • хтт, где а^ = degЖj (иг) —число вхождений (степень) символа х^ в этот моном. Если обозначить мультииндекс а = (а1,... , ат), то можно записать равенство а = degж(ui), с учётом которого получаются следующие равенства:
с1(в) = Е (в,щ)с\(щ) = Е[ Е (в, иг)] ха = Е С«х".
г=0 а ya=degx(«i) J а
Впервые коммутативный образ ФСР рассмотрел А. Л. Семёнов [6], используя методы вещественного анализа для решения алгоритмических проблем, связанных с кс-
языками. Эта работа открыла дорогу для приложений как вещественного, так и многомерного комплексного анализа в теории формальных языков и грамматик.
Например, коммутативный образ ФСР может быть использован при решении проблемы академика В. М. Глушкова: установить критерии, с помощью которых можно выяснить, является данный ФСР кс-языком или нет [2, с. 196]. В самом деле, коммутативный образ кс-языка является кратным степенным рядом, представляющим алгебраическую функцию многих комплексных переменных, поэтому можно получить частичное решение этой проблемы, используя критерии алгебраичности для суммы степенного ряда [7-10].
Далее рассмотрим коммутативный образ системы символьных полиномиальных уравнений, представляющий собой систему полиномиальных уравнений в СП+т.
Теорема 1. Если г = г(х) = (г^х),..., гп(х)) —решение некоммутативной системы уравнений (1) в виде символьных ФСР, то коммутативные ФСР г = е1(г(х)) = = (е1(г1(х)),... , е\(гп(х))) над полем комплексных чисел сходятся в окрестности нуля, определяя ростки голоморфных алгебраических функций, и являются решением коммутативной системы уравнений
а(Ру (г,х)) = 0, ¿(Ру (0, 0)) = 0,у = 1,...,к. (4)
Доказательство. Пусть решение г(х) = (г1(х),..., гп(х)) системы (1), представленное ФСР, имеет вид
г1(х) = Т(г1,пг)щ, ..., гп(х) = Т(гп,щ)щ.
г г
Отметим, что, подставляя это решение в многочлен Ру(г,х), стоящий в левой части уравнений (1), получаем ФСР в виде разложения по универсальному базису с нулевыми коэффициентами:
= ТО ,пг)пг = Т 0 ■ пг, ] = 1,...,к.
г г
Тогда имеют место равенства
е\(Ру (г,х))|г=о1(г(х)} = С1 (Ру (г(х),х)) = ел(1у) = Т 0 ■ е\(пц), ] = 1,...,к,
г
т.е. совокупность коммутативных ФСР удовлетворяет системе уравнений (4).
Покажем, что все ФСР е1(г(х)) сходятся в некоторой окрестности нуля. В самом деле, если ФСР над полем комплексных чисел удовлетворяет уравнению с голоморфными коэффициентами (функциями, представленными абсолютно сходящимися в окрестности нуля степенными рядами), то он также абсолютно сходится в некоторой окрестности нуля, представляя голоморфную функцию [11]. Следовательно, коммутативные ФСР е1(г(х)) сходятся в некоторой окрестности нуля, порождая ростки алгебраической вектор-функции, а решения (г,х) системы (4), рассматриваемые как точки в комплексном пространстве СП+т, можно записать с помощью этой вектор-функции в виде (г(х),х). ■
Частный случай теоремы 1, когда к = п, рассмотрен в [5].
Подчеркнём, что совместность понимается для некоммутативной системы (1) и коммутативной системы (4) по-разному: в первом случае решением являются символьные ФСР от х1,... ,хт, а во втором — точки в комплексном пространстве, параметризованные алгебраическим отображением г = г (х); его голоморфные в нуле ветви
являются коммутативными образами символьных ФСР, представляющих компоненты решения системы (1). По теореме 1, если некоммутативная система (1) совместна, то коммутативная система (4) имеет голоморфное в начале координат решение. Обратное, вообще говоря, неверно. В самом деле, система уравнений
¿1 — ¿2 = х1х2, 21 — ¿2 = х2х1
является несовместной, тем не менее её коммутативный образ имеет решение: 21 = = в + х1х2, 22 = в, где в — произвольный коммутативный ФСР. Таким образом, можно сделать следующие замечания.
Замечание 1. Множество решений системы уравнений (4), вообще говоря, шире, чем множество коммутативных образов решений системы уравнений (1), и из совместности системы уравнений (4) не следует совместность исходной некоммутативной системы (1).
Замечание 2. Естественная гипотеза о том, что система (1) совместна тогда и только тогда, когда система (4) имеет голоморфное в начале координат решение 2 = = 2 (х), неверна.
Рангом матрицы А называется наибольшее число её строк, линейно независимых над полем комплексных чисел; обозначается гапк(А).
Теорема 2. Пусть А = (а^(х))^хп — матрица, элементы которой являются многочленами от символьных некоммутативных переменных х = (х1 , . . . , хт) , и матрица а(А) = (¿(а^(х)))^хп является коммутативным образом матрицы А. Тогда выполнено неравенство
гапк(а(А)) ^ гапк(А).
Доказательство. Пусть, для определённости, линейно независимыми являются строки с номерами 1,..., г, следовательно, гапк(А) = г. Приравнивая к нулю линейную комбинацию этих строк с коэффициентами 21,... , 2Г, получим систему полиномиальных уравнений
21а1^-(х) + ... + 2Га^-(х) = 0, ] = 1,..., п,
которая имеет единственное решение в виде ФСР: 21 = ... = 2Г = 0. Коммутативный образ этой системы уравнений
21с1(а1^-(х)) + ... + 2Г«(а^(х)) = 0, ] = 1,..., п,
в соответствии с замечанием 1, может иметь более широкое множество решений, включающее решение 21 = ... = 2Г = 0. В этом случае коммутативные образы исходных строк являются линейно зависимыми, следовательно, гапк(а(А)) ^ гапк(А). ■
Отметим, что теореме 1 эквивалентна следующая теорема.
Теорема 3. Если коммутативная система уравнений (4) не имеет решения, голоморфного в начале координат, то некоммутативная система (1) несовместна.
Таким образом, условия несовместности системы уравнений (4) также представляют интерес в теории формальных языков и грамматик.
2. Дискретный аналог теоремы о неявном отображении
Конечно, наибольший интерес для приложений представляют условия, которые обеспечивают совместность системы некоммутативных символьных уравнений (1), а также единственность её решения. Согласно замечанию 2, таким условием не может
быть существование голоморфного в начале координат решения системы коммутативных уравнений (4). Тем не менее это условие можно получить с помощью такого инструмента, как якобиан системы функций.
Рассмотрим систему уравнений (1) в случае, когда k = n. Пусть
J (z,x) = det((ci(Pi(z,x)))')
— якобиан системы уравнений (4) относительно переменных z1, . . . , zn.
Дискретным (символьным) аналогом теоремы о неявном отображении является следующая теорема.
Теорема 4. Если для некоммутативной символьной системы уравнений (1) выполнено неравенство J(0, 0) = 0, то она имеет единственное решение в виде ФСР.
Замечание 3. Неравенство является условием теоремы о неявном отображении для коммутативной системы уравнений (4) с переменными в Cn+Xm и влечёт существование и единственность её голоморфного решения; тем не менее оказывается, что это неравенство влечёт также существование и единственность решения исходной некоммутативной символьной системы уравнений (1).
Доказательство. Обозначим L\(z),... ,Ln(z) линейные части многочленов P1(z,x),... , Pn(z, x) соответственно, зависящие только от z1,... ,zn:
Lj (z) = üjizi + ... + üj,nzn, j = 1,... ,n.
Далее, обозначая многочлены Sj(z,x) = Lj(z) — Pj(z,x), запишем исходную систему уравнений в виде
ajizi + ... + ajnzn = Sj (z,x), j = 1,... ,n. (5)
Рассмотрим число J(0, 0); легко видеть, что имеют место равенства
J(0, 0) = det((ci(Li(z)))Zj) = det(((Li(z))Zj) = det(aj).
Поскольку det(a,ij) = 0, матрицу (aij) можно привести к диагональному виду, умножая на числа уравнения системы (5) и складывая их [12]. При этом система (5) перейдёт в эквивалентную систему уравнений Хомского — Щутценберже (2), в которой правые части уравнений не содержат линейных членов.
Как отмечалось выше, эта система имеет единственное решение, которое можно получить методом последовательных приближений [1]:
z(k+1)(x) = Q(z(k)(x),x), k = 0,1,...; z(0) = 0;
Q(z,x) = (Q1(z,x),... ,Qn(z,x)); z(x) = lim z(k(x).
k^rx
Теорема доказана. ■
Замечание 4. Неравенство J(0,0) = 0 обусловлено свойствами линейных многочленов L1(z),... , Ln(z), а они совпадают со своими коммутативными образами. По этой причине неравенство влечёт совместность не только коммутативной, но и некоммутативной системы уравнений.
Наконец, отметим, что система уравнений (1) имеет бесконечно много решений, если множество её решений зависит хотя бы от одного произвольного ФСР от символов x1, ... , xm [4].
Пример 1. Система из двух одинаковых уравнений x1z1 — z2x2 = 0 имеет бесконечно много решений, поскольку её решения можно записать в виде z1 = sx2, z2 = x1s, где s — произвольный ФСР от x1,x2.
3. Синтаксический анализ мономов методом мономиальных меток
Одной из важных проблем, связанных с разработкой систем и языков программирования, является проблема синтаксического анализа программ [2]. Как отмечено выше, большинство языков программирования является кс-языками, которые можно представить в виде ФСР, поэтому каждая программа, написанная на языке программирования, может рассматриваться как моном соответствующего ФСР. В связи с этим рассмотрим проблему синтаксического анализа мономов кс-языка.
Для того чтобы сформулировать её, рассмотрим подробнее систему полиномиальных уравнений Хомского — Щутценберже (2), которая определяет кс-язык. Как известно [1, 2], грамматика кс-языка является множеством правил подстановки
ху ^ ду1(х,ж), ..., ху ^ д^(г, ж), 3 = 1,..., п, (6)
где дук (х, ж) является мономом от некоммутативных символьных переменных с числовым коэффициентом, равным единице. Правила подстановки можно применять к начальному символу х1 , а затем к другим мономам в любом порядке неограниченное число раз, что позволяет выводить новые «правильные» мономы, образующие кс-язык. Известно также [1], что многочлены, стоящие в правой части системы уравнений Хомского— Щутценберже (2), определяются равенствами
Цу(х,ж) = ду1(х,ж) + ... + д^. (х,ж), 3 = 1,... ,п.
Итак, проблема синтаксического анализа мономов состоит в том, чтобы определить, принадлежит ли моном данному кс-языку, т. е. может ли быть получен из начального символа х1 при помощи правил подстановки (6), а также установить, какие правила подстановки и сколько раз использовались при выводе этого монома; при этом порядок использования правил подстановки не имеет значения [2].
В работе [8] предложен метод мономиальных меток, который позволяет провести беступиковый синтаксический анализ монома V от терминальных символов ж1,... , жт. Метод состоит в следующем. Сначала каждое правило подстановки ху ^ дук(х, ж) заменяется правилом ху ^ ¿у кдук(х, ж), имеющим мономиальную метку ¿у к, которая является символом из расширенного алфавита, и для новых правил вывода рассматривается соответствующая система уравнений Хомского — Щутценберже:
ху = д*(х, ж, ¿) = ¿^д^х, ж) + ... + ¿¿р.у(х,ж), 3 = 1,..., п. (7)
Далее решение системы (7) можно получить методом последовательных приближений, о котором говорилось в доказательстве теоремы 4:
х(к+1) (ж, ¿) = д*(х(к)(ж,£),ж,£), к = 0,1,...; х(0) = 0. Как результат, решение получается в виде ФСР
те
ху = х*(ж,¿) = Е(х*j,wi)wi, 3 = 1,... ,п, (8)
г=0
где wi — мономы от символов ж1,..., жт, ¿11, ¿12,... , ¿Прп. Заметим, что если каждый символ ¿ук заменить пустой цепочкой е, то решения систем уравнений (7) и (2) совпадают:
х*(ж,е) = ху(ж), 3 = 1,...,п. (9)
Теперь итерации метода последовательных приближений для системы уравнений (7) дают многочлены возрастающей степени относительно всех символов
... , Тт^ц,¿12,... ^пРп, при этом мономы степени не выше degx(v) относительно символов х1,... , хт после конечного числа итераций стабилизируются, не меняясь при последующих итерациях. Таким образом, можно получить начальные члены решения системы (7) в виде ФСР (8) до любой сколь угодно высокой степени, в том числе члены ФСР, представляющего первую компоненту этого решения:
те
¿1 = ¿*(х,г) = ^2 {х*,™^. (10)
1=0
Наконец, синтаксический анализ монома V кс-языка (х) можно провести следующим образом. Считывая мономы степени degx(v) относительно символов х1,... ,хт и пропуская символы ¿ук, можно установить, есть ли среди них моном V, а значит, можно ли вывести его с помощью системы продукций (6). При этом каждая мономиальная метка ¿ук, содержащаяся в таком мономе, показывает, что при его выводе использовалось правило ¿у ^ ¿укЧук(¿,х). В самом деле, из системы уравнений (7) и метода последовательных приближений нетрудно видеть, что, применяя это правило вывода к моному, мы умножаем его слева на символ ¿ук. Следовательно, мономиальные метки монома решают проблему его синтаксического анализа, показывая, какие правила вывода кс-языка и сколько раз использовались при выводе этого монома, с точностью до порядка их применения.
Доказано [8], что метод мономиальных меток позволяет провести за конечное число шагов беступиковый синтаксический анализ любого монома (программы) кс-языка, заданного грамматикой (6).
Очевидно, что недостатком метода мономиальных меток является большое число громоздких итераций метода последовательных приближений, необходимых для получения начальных членов ФСР (8), причём это число возрастает вместе с ростом степени монома V. В связи с этим ниже предлагается другой путь для получения мо-номиальных меток некоммутативного монома.
4. Интегральное представление синтаксического многочлена
Информацию о мономиальных метках монома можно получить в виде (п+т)-крат-ного интеграла по циклу, где числа п и т не зависят от степени монома и равны числу нетерминальных и терминальных символов грамматики кс-языка соответственно.
Рассмотрим коммутативный образ ФСР (10)
сЭД (х,1)) = £ за(1)ха, (11)
а
сгруппированный по степеням ха в кратный ряд Гартогса.
Лемма 1. При всех мультииндеках а голоморфные в нуле коэффициенты ряда Гартогса эа(1) являются многочленами.
Доказательство. Как отмечено выше, числовые коэффициенты системы уравнений (7) равны единице, поэтому коэффициенты ФСР (10) являются целыми положительными числами. Отсюда следует, что коэффициенты каждого степенного ряда также являются целыми положительными числами, а число ва(в) равно сумме этих коэффициентов. Из равенств (9) и (11) следует равенство
с1(^1 (х)) = £ ва(б)ха, а
которое влечёт неравенство за(е) < то. Это значит, что сумма неотрицательных целых коэффициентов степенного ряда функции за(е) конечна, следовательно, эта функция является многочленом. ■
Определение 1. Синтаксическим многочленом монома V относительно кс-языка ¿1 (х) = (х,е) называется коэффициент за(£) ряда Гартогса (11), такой, что ха = ci(v).
Замечание 5. Мономиальные метки, содержащиеся в некоммутативных мономах кс-языка, не исчезают при переходе от ФСР (10) к его коммутативному образу (11) и сохраняются в виде мономов синтаксических многочленов, поскольку все коэффициенты ФСР (10) являются целыми положительными числами. Следовательно, если синтаксический многочлен монома относительно кс-языка равен нулю, то моном не принадлежит этому языку.
Замечание 6. Для проведения синтаксического анализа монома V, такого, что а^) = ха, следует найти синтаксический многочлен за(£). Каждый моном многочлена за(£) является произведением мономиальных меток правил подстановки, которые позволяют получить некоторые мономы, имеющие тот же коммутативный образ ха, поэтому для завершения синтаксического анализа монома V остаётся проверить, можно ли получить его с помощью правил подстановки, соответствующих всем мономам синтаксического многочлена за(£).
Следующая теорема даёт принципиальную возможность получить синтаксические многочлены за(£) в виде кратного интеграла по циклу, который может быть вычислен с помощью многомерных вычетов.
Теорема 5. При всех достаточно близких к нулю, и всех мультииндексах а синтаксический многочлен за(£) задаётся равенствами
= 1 Г ¿1 аеЦ^- - (а(д*(^х^)))^.) ^ Л ^х ^ = (2пг)"+^ У (г - а(д *(*,х,*))) х«+7 ' ( )
ХГ:
X
1 г д 1Н1 /¿1 ае1(8ч- - (а(д*(г,х,*)))' )
(2пг)гаа! У дхМ (г - а(ф*(¿,х,г)))
ж=0
(13)
где = {|г1| = ... = |гп|} и Гх = {|х1| = ••• = |хт|} —циклы интегрирования 0 < 8 < е < 1; ^ = ^ Л ... Л ^х = ^х1 Л ... Л ^хт; ха+/ = х^1+1 • ... • хтт+1
а! = а1! • ... • ат1; (г - *(г,х,г))) = (¿1 - (¿, х, ;£))) • ... • - х, г)))
д1М1 да1+...+"т
—— = _ ПЛ---; 8ц — символ Кронекера.
дха дх?1 • ... • дхт™
Для доказательства теоремы 5 понадобится следующая лемма. Лемма 2. При всех (х,^), достаточно близких к нулю, голоморфная в нуле алгебраическая функция (х, ¿)), представленная рядом Гартогса (11), задаётся формулой
1 г ¿1 ае1 (8^ - (а(0*(¿,х,г)))^.) ^ (м)) = -(*- а(д *(¿,х,*))) ' ^ (14)
Доказательство. Во-первых, отметим, что - (¿,х, ¿)))^.) =
= /1(^,х) —якобиан системы функций
(¿1 - а^К^х^)),... ,2П - а(ОП(^,х^))
по переменным г1,... ,гп. Так как ((а(О* (0, 0, 0)}}^) = 0, то ,^(0, 0) = 1, следовательно, по теореме о неявном отображении система уравнений
Ху — а(О* (г, х,1)) = 0, 3 = 1,... ,п, имеет в окрестности начала координат единственное и голоморфное решение:
= СН4(x, 1)) = с^Е(г)) ^ , 3 = 1,...,п
Далее, если г Е , то при всех (х,Ь), достаточно близких к нулю, выполнены неравенства
1 > ИО(г,х,1))1,3 = l,...,n,
поэтому на цикле интегрирования знаменатель подынтегральной рациональной функции (14) не обращается в нуль. Наконец, из формулы многомерного логарифмического вычета [13] следует формула (14). ■
Доказательство теоремы 5. Коэффициенты ряда Гартогса, сходящегося в окрестности нуля, могут быть представлены формулой Коши
1 [ а(х!(х, ¿)) дьх - ' - (15)
либо формулой Тейлора
(2пг)п ] ха+1
Гх
1 яН«11
- = а &=■ <с'« ^
Из этих формул и формулы (14) следует, что формулы (12) и (13) верны. ■
5. Пример вычисления синтаксического многочлена программы
Следуя [2], рассмотрим кс-язык арифметических выражений, порождённый грамматикой с системой правил подстановки
Х1 ^ (х\ * г2), Х1 ^ (а + Ь), Х2 ^ Ь,
и выражение (((а + Ь) * Ь) * Ь) как программу, написанную на этом языке. Известные методы синтаксического анализа показывают [2, с. 247], что для получения этой программы необходимо два раза использовать правило подстановки г1 ^ (г1 * г2), один раз — правило г1 ^ (а + Ь) и два раза — правило г2 ^ Ь.
Для того чтобы подчеркнуть, что интеграл (12), имеющий одну и ту же размерность п + т, позволяет анализировать мономы с неограниченными степенями, рассмотрим обобщённую программу, длина которой может быть сколь угодно большой.
Пример 2. Рассмотрим обобщённую программу (• • • ((а + Ь) * Ь) • • • * Ь), где символ «*» использован д раз и символ «(» — д +1 раз. Легко проверить, что программа содержит 4д + 5 символов. По аналогии с предыдущей программой можно видеть, что обобщённую программу можно получить, используя первое и третье правила подстановки д раз, а второе правило один раз.
Сначала переобозначим терминальные символы «+», «*», «(», «)», а, Ь символами х1, х2, х3, х4, х5, хб соответственно, тогда система уравнений (7) для этого кс-языка примет вид
Х1 = ¿11хэх1х2х2х4 + ¿12 хзх5х1хбх4, Х2 = ¿21 хб. (16)
Перепишем также эту программу как моном
хз • • • хзхзх5х1хбх4х2хдх4• • •х2хдх4,
имеющий степень 4д + 5, которая может быть сколь угодно большой. Коммутативный образ этого монома равен
д д+1 д+1 д+1 гу\
х1х2хз х4 х5хд , (17)
поэтому мультииндекс а в формуле (15) равен (1, д, д + 1, д + 1,1, д + 1). Далее, якобиан системы уравнений (16) в этом случае равен
- (а(ф*(¿,х,г)))^.) = 1 - ¿цх2хзх4^2.
Теперь вычислим кратный интеграл (12) как повторный, сначала вычисляя интеграл (14), а затем (15). Интеграл (14) в нашем случае равен
1С ¿1(1 - ¿их2хзх4^2) ^ Л
(2пг)2 У (¿1 - ¿цх2хзх4^1^2 - ¿12х1хзх4х5хб)(^2 - ¿2^) '
Ы=Ы=£
18)
Вычисляя последний интеграл по формуле Коши сначала по переменной ¿2, а затем по ¿1, получим
./ 1 С ¿1(1 - ¿11^21х2хзх4хб)
ОД ) = тп ~
2т I ¿1 — ¿11^21х2хзх4хб^1 — ¿12х1хзх4х5хб |^1|=£
1 Г ¿1(1 - ¿11^21 х2хзх4х6) ^
2П I ¿1(1 - ¿11^21х2хзх4хб) - ¿12х1хзх4х5хб |^1| = £
1 Г ¿1(1 - ¿11^21 х2хзх4х6) ^
2П У / ¿12х1хзх4х5хб \ х х ,
Н=е ¿1 - -л-—- (1 - ¿11^21х2хзх4хе)
\ 1 - ¿11Г21х2хзх4хб у
1 [ ¿1 ¿12 х1хзх4х5хб
2П У _ ¿12х1хзх4х5х6 1 - ¿^21х2хзх4х6
^= 1 - ¿11^21х2хзх4хб
Теперь вычислим интеграл (15), где а = (1, д, д + 1,д +1,1,д + 1), Гх = {|х11 = ... = |х6|}, ¿ = (¿11,¿12,¿21), используя разложение подынтегральной рациональной функции в степенной ряд для геометрической прогрессии:
1 Г ¿12х1хзх4х5х6 ^х1 Л • • • Л ^х6
(2пг)6 У (1 - ¿11¿21x2x3x4x6) х!х2+1хз+2х4+2х2х6+2
ГХ
1 [ I ^^ 4-к + 4-к к к+1 к+1 к+1 \ ^х1 Л • • • Л ^х6
(2Пг)6 М ¿11¿12¿21XlX2хз х4 х5х6 ]
Г
оо
к=0 / х1х2 хз х4 х5х6
с
_ ^ ¿k1¿12¿k1 [ к-ак-ак-ак-д ^х1 Л • • • Л ^х(3 _ д д
= / о Л6 х2 хз х4 х6 = ¿11^12^21.
к=0 (2пг)6 у х1 ...х6
Гх
Очевидно, что интегралы от всех слагаемых равны нулю, кроме случая к = д, когда интеграл равен (2пг)6. Итак, синтаксический многочлен мономов, имеющих коммутативный образ (17), равен ¿^¿^¿2ь согласно замечанию 6, мы должны проверить единственный путь для получения нашей программы: д раз использовать правило подстановки ^ (¿1 * ¿2), один раз — правило ^ (а + Ь) и д раз — правило ¿2 ^ Ь, начиная
с исходного символа zi. Этот путь в самом деле позволяет получить программу, что и завершает её синтаксический анализ.
Таким образом, пример 2 подтверждает, что интегральное представление фиксированной кратности даёт возможность осуществлять синтаксический анализ мономов (программ), степени (длины) которых неограничены.
ЛИТЕРАТУРА
1. Salomaa A. and Soitolla M. Automata-Theoretic Aspects of Formal Power Series. N.Y.: Springer Verlag, 1978. 167 p.
2. Глушков В. М., Цейтлин Г. Е., Ющенко Е. Л. Алгебра. Языки. Программирование. Киев: Наукова думка, 1973. 319 с.
3. Гриффитс Ф, Харрис Дж. Принципы алгебраической геометрии. Т. 1. М.: Мир, 1982. 259 с.
4. Егорушкин О. И., Колбасина И. В., Сафонов К. В. О совместности систем символьных полиномиальных уравнений и их приложении // Прикладная дискретная математика. Приложение. 2016. №9. С. 119-121.
5. Egorushkin O. I., Kolbasina I. V., and Safonov K. V. On Solvability of Systems of Symbolic Polynomial Equations // Журнал Сибирского федерального университета. Математика и физика. 2016. Т. 9. №2. С. 166-172.
6. Семёнов А. Л. Алгоритмические проблемы для степенных рядов и контекстно-свободных грамматик // Доклады Академии наук СССР. 1973. Т. 212. С. 50-52.
7. Safonov K. V. On power series of algebraic and rational functions in Cn // J. Math. Analysis and Appl. 2000. V. 243. P. 261-277.
8. Сафонов К. В., Егорушкин О. И. О синтаксическом анализе и проблеме В. М. Глушкова распознавания контекстно-свободных языков Хомского // Вестник Томского государственного университета. 2006. Приложение №17. С. 63-67.
9. Safonov K. V. An algebraicity criterion for the sum of a power series (a generalization of Kronecker's criterion) and its application // Doklady Mathematics. 2009. V. 79. No. 1. P. 13-15.
10. Pemantle R. and Wilson M. C. Analytic Combinatorics in Several Variables. Cambridge: Cambridge University Press, 2013. 414 p.
11. Herve M. Several Complex Variables. Local Theory. Oxford: Oxford University, 1963. 158 p.
12. Глухов М. М., Елизаров В. П., Нечаев А. А. Алгебра. СПб.; М.; Краснодар: Лань, 2015. 608 с.
13. Aizenberg L. A. and Yuzhakov A. P. Integral Representations and Residues in Multidimensional Complex Analysis. Translations of Mathematical Monographs. V. 58. Providence: AMS, 1983. 283 p.
REFERENCES
1. Salomaa A. and Soitolla M. Automata-Theoretic Aspects of Formal Power Series. N.Y., Springer Verlag, 1978. 167 p.
2. Glushkov V. M., Tseytlin G. E., and Yushchenko E. L. Algebra. Yazyki. Programmirovanie [Algebra. Languages. Programming]. Kiev, Naukova dumka, 1973. 319p. (in Russian)
3. Griffiths P. and Harris J. Principles of Algebraic Geometry. Vol.1. N.Y., John Wiley and Sons, 1978. 348 p.
4. Egorushkin O. I., Kolbasina I. V., and Safonov K. V. O sovmestnosti sistem simvol'nykh polinomial'nykh uravneniy i ikh prilozhenii [On consistency of systems of symbolic polynomial equations and its application]. Prikladnaya Discretnaya Mathematika. Prilozhenie, 2016, no. 9, pp. 119-121. (in Russian)
5. Egorushkin O. I., Kolbasina I. V., and Safonov K.V. On solvability of systems of symbolic polynomial equations. J. Siberian Federal University. Mathematics and Physics, 2016, vol.9, no. 2, pp. 166-172.
6. Semenov A. L. Algoritmicheskie problemy dlya stepennykh ryadov i kontekstno-svobodnykh grammatik [Algorithmic problems for power series and context-free grammars]. Doklady Akademii nauk SSSR, 1973, vol.212, pp. 50-52. (in Russian)
7. Safonov K. V. On power series of algebraic and rational functions in Cn. J. Math. Analysis and Appl., 2000, vol.243, pp.261-277.
8. Safonov K. V. and Egorushkin O. I. O sintaksicheskom analize i probleme V. M. Glushkova raspoznavaniya kontekstno-svobodnykh yazykov Khomskogo [Syntactical analysis and the V. M. Glushkov problem of recognition of Chomsky Context-Free Languages]. Vestnik TSU. Prilozhenie, 2006, no. 17, pp. 63-67. (in Russian)
9. Safonov K. V. An algebraicity criterion for the sum of a power series (a generalization of Kronecker's criterion) and its application. Doklady Mathematics, 2009, vol.79, no. 1, pp.13-15.
10. Pemantle R. and Wilson M. C. Analytic Combinatorics in Several Variables. Cambridge, Cambridge University Press, 2013. 414 p.
11. Herve M. Several Complex Variables. Local Theory. Oxford, Oxford University, 1963. 158 p.
12. Glukhov M. M., Elizarov V. P., and Nechaev A. A. Algebra [Algebra]. SPb., Moscow, Krasnodar, LAN' Publ., 2015. 608 p. (in Russian)
13. Aizenberg L. A. and Yuzhakov A. P. Integral Representations and Residues in Multidimensional Complex Analysis. Translations of Mathematical Monographs. Vol. 58. Providence, AMS, 1983. 283 p.