Научная статья на тему 'Моделирование динамической системы средствами функциональных грамматик'

Моделирование динамической системы средствами функциональных грамматик Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
106
22
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ДИНАМИЧЕСКИЕ СИСТЕМЫ / МОДЕЛИРОВАНИЕ / МАТЕМАТИЧЕСКАЯ МОДЕЛЬ ЯЗЫКА / УНИВЕРСАЛЬНАЯ АЛГЕБРА / КОНТЕКСТНО-СВОБОДНАЯ ГРАММАТИКА / РЕКУРСИЯ / ИНТЕРПРЕТАТОР / СЕМАНТИКА / DYNAMIC SYSTEMS / MODELING / ALGEBRAIC MODEL OF LANGUAGE / UNIVERSAL ALGEBRA / CONTEXT-FREE GRAMMAR / RECURSION / INTERPRETER / SEMANTICS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Николаева Дарима Доржиевна, Ширапов Дашадондок Шагдарович, Анахин Владимир Дмитриевич

В работе рассматривается вопрос о моделировании класса компьютерных программ, которые порождают вычислительные процессы и адекватно описывают работу динамической системы. Для решения данной задачи используются средства функциональных грамматик. Основной базисной операцией функциональных грамматик является операция отождествления. В работе рассмотрен пример использования операции отождествления на фрагменте компьютерной программы, которая моделирует динамическую систему. Конечным результатом является получение суперпозиции базисных функций с привлечением операции отождествления. Полученная суперпозиция является математической моделью динамической системы, представленной в виде компьютерной программы. Построено дерево синтаксического разбора ком -пьютерной программы, в узлах которой находятся базисные функции (нетерминалы). Если в узлах требуется представление в виде функ (объект есть функция), то данный узел интерпретируется как суперпозиция базисных функций. Если же в узлах требуется представление в виде текст, то объектом является фрагмент текста программы, соответствующий нетерминалу (нетерминал в данном узле представляет собой фрагмент текста программы). Также в узлах может потребоваться представление в виде знач (объект есть результат выполнения вышесказанной суперпозиции функций, соответствующей нетерминалу).

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Николаева Дарима Доржиевна, Ширапов Дашадондок Шагдарович, Анахин Владимир Дмитриевич

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

MODELING OF A DYNAMIC SYSTEM BY FUNCTIONAL GRAMMARS

The article considers the problem of modeling a class of computer programs that generate computational processes and adequately describe the operation of a dynamic system. To solve this problem, we use the means of functional grammars. Identification is the basic operation of functional grammars. The article gives an example of using the identification operation on a fragment of the computer program that simulates a dynamic system. The end result is the obtaining of basic functions superposition with the involvement of the identification operation. The superposition obtained is an algebraic model of dynamic system, presented in the form of a computer program. We have constructed a parse tree for the computer program, which nodes contain the basic functions (non-terminals). If nodes require a representation in the form of functions (an object is the function), then this node is interpreted as a superposition of basic functions. If in nodes a representation in the form of text is required, then an object is the fragment of the program text corresponding to non-terminal (non-terminal in this node is a fragment of the program text). Also, nodes may require a representation in the form of values (an object is the result of the above superposition of functions corresponding to non-terminal).

Текст научной работы на тему «Моделирование динамической системы средствами функциональных грамматик»

УДК 51-7

DOI: 10.18101/2304-5728-2019-3-69-76

МОДЕЛИРОВАНИЕ ДИНАМИЧЕСКОЙ СИСТЕМЫ СРЕДСТВАМИ ФУНКЦИОНАЛЬНЫХ ГРАММАТИК

© Николаева Дарима Доржиевна

научный сотрудник,

Бурятский государственный университет имени Доржи Банзарова Россия, 670000, г. Улан-Удэ, ул. Смолина, 24а E-mail: [email protected]

© Ширапов Дашадондок Шагдарович

доктор физико-математических наук, профессор, Бурятский государственный университет имени Доржи Банзарова Россия, 670000, г. Улан-Удэ, ул. Смолина, 24а E-mail: [email protected]

© Анахин Владимир Дмитриевич

доктор технических наук, профессор,

Бурятский государственный университет имени Доржи Банзарова Россия, 670000, г. Улан-Удэ, ул. Смолина, 24а E-mail: [email protected]

В работе рассматривается вопрос о моделировании класса компьютерных программ, которые порождают вычислительные процессы и адекватно описывают работу динамической системы. Для решения данной задачи используются средства функциональных грамматик. Основной базисной операцией функциональных грамматик является операция отождествления. В работе рассмотрен пример использования операции отождествления на фрагменте компьютерной программы, которая моделирует динамическую систему. Конечным результатом является получение суперпозиции базисных функций с привлечением операции отождествления. Полученная суперпозиция является математической моделью динамической системы, представленной в виде компьютерной программы. Построено дерево синтаксического разбора ком -пьютерной программы, в узлах которой находятся базисные функции (нетерминалы). Если в узлах требуется представление в виде функ (объект есть функция), то данный узел интерпретируется как суперпозиция базисных функций. Если же в узлах требуется представление в виде текст, то объектом является фрагмент текста программы, соответствующий нетерминалу (нетерминал в данном узле представляет собой фрагмент текста программы). Также в узлах может потребоваться представление в виде знач (объект есть результат выполнения вышесказанной суперпозиции функций, соответствующей нетерминалу).

Ключевые слова: динамические системы; моделирование; математическая модель языка; универсальная алгебра; контекстно-свободная грамматика; рекурсия; интерпретатор; семантика.

Для цитирования:

Николаева Д. Д., Ширапов Д. Ш., Анахин В. Д. Моделирование динамической

системы средствами функциональных грамматик // Вестник Бурятского государственного университета. Математика, информатика. 2019. № 3. С. 69-76.

Введение

Конструктивное построение отображений между множествами слов, которые порождаются контекстно-свободными грамматиками, имеет большое практическое значение, поскольку контекстно-свободные грамматики являются гибкими инструментами для описания иерархических классификаций. Для разработки компьютерных программ, в которых присутствуют сложные объекты, необходима математическая модель вычислительных процессов, порождаемых программой.

Статья посвящена построению отображений между множествами, которые порождаются контекстно-свободными грамматиками. Такой подход дает возможность математически описывать компьютерную программу, моделирующую динамическую систему.

1 Постановка задачи

В работе рассматривается задача об уточнении понятия класса компьютерных программ, моделирующих динамическую систему. Решение этой задачи позволит исследовать структуру класса алгоритмов, модели -рующих динамическую систему, и в той или иной степени сформулировать утверждения о поведении динамической системы, исследуя вычислительный процесс, изоморфный к функционированию динамической системы. Для такой постановки вопроса требуется построить формальную математическую модель класса компьютерных программ, моделирующих динамическую систему. Для построения математической модели компьютерной программы исследуется аппарат функциональных грамматик. Основной базисной операцией функциональных грамматик является операция отождествления, которая эффективна для построения алфавитных отображений над множествами слов, порождаемых контекстно-свободными грамматиками. Используя построенную математическую модель языка программирования в виде универсальной алгебры (M, W), строится конкретная формальная математическая модель программы, которая является компьютерной моделью функционирования динамической системы.

2 О построении отображений над множествами слов, порожденных контекстно-свободными грамматиками

Пусть задан конкретный и известный язык программирования L (Pascal, Си ++ и т. д.). Математическая модель языка программирования представляется в виде универсальной алгебры при помощи аппарата функциональных грамматик.

Основание функциональных грамматик состоит из следующих примитивов:

1. Контекстно-свободная грамматика: алгоритм синтаксического анализа, выводы, сентенциональные фразы и выводы из них и т. д.

2. Операция левого отождествления.

3. Операция выбора «либо» | .

4. Рекурсия.

5. Многоуровневость О^ G2 и т. д.

6. Суперпозиция (есть дерево, в узлах которого стоят функции). Если функция, находящаяся в узле, дает результат, имеющий метатип знач, то данный результат передается по выходной ветви узла дерева как аргумент к следующей функции.

7. Операция Буа1 (первый аргумент есть функция, второй аргумент — исходные данные этой функции). Буа1 применяет функцию к исходным данным и получает результат. Данный результат имеет метатип знач .

8. Метатип знач является типом результата при выполнении функции.

9. Метатип функ — тип композиций функций.

10. Метатип текст — текст программы в заданном языке.

11. Арифметические операции. В языке считаются заданными множество целых чисел; операции сложения, вычитания, умножения и целочисленного деления в десятичной арифметике и операции сравнения <, <, =, >, >.

С точки зрения универсальной алгебры язык Ь будет представлять собой конечную совокупность {Ф'}гер|, которая будет являться сигнатурой операций алгебры. Тогда любая программа х е Ь будет представляться с помощью синтаксической грамматики Оо в виде суперпозиции базисных функций из сигнатуры алгебры {Фг}ге^ .

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

представляет собой универсальную алгебру А с сигнатурой операций О = {Ф'}г-ер|. Таким образом, если Ь — это множество синтаксически правильных программ типа (текст), Т(О) — множество суперпозиций базисных функций из О, а — алгоритм синтаксического разбора, то а : Ь ® Т(О) — взаимно однозначное отображение, " х е Ь а( х) е Т (О).

Из примитивов наиболее интересным и существенным является операция отождествления. Операцию отождествления для формальных грамматик впервые ввел Виталий Алексеевич Тузов [1; 2].

Пусть ф, у — слова в алфавите Ук и Ут (сентенциальные формы

грамматики G), где нетерминальные символы помечены индексами, которые являются формальными параметрами операции отождествления. Тогда операция отождествления синтаксически представляется в виде (ф)у и содержательно определяется как отображение совокупности входных формальных параметров, принадлежащих к ф, на совокупность выходных (т. е. результирующих) формальных параметров, входящих в

у . Семантически операция отождествления (ф)у трактуется так: если

*

х — фактический аргумент этой операции, то строится вывод ф ^ х этого слова в грамматике Ом . Тогда нетерминальные символы слова ф

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

Все операции начинаются с исходных данных (что дано). Любая операция имеет исходные данные и результат. Сказанное продемонстрируем на примере.

Пусть задана грамматика G = (Уы, Ут, Р, А) , где А е Уы — начальный нетерминальный символ.

Обозначим за: ф — исходные данные, у — схема получения результата.

Синтаксически операция отождествления выглядит следующим образом:

(ф)у , где ф, у е(Ум и Ут) . Рассмотрим подробнее исходные данные операции отождествления на примере:

ф = Ы1т1 Ы2т2 Ы3т3, где N е Уы, тг е У*т .

(в более общем случае р = К1т1 N2т2 ...Nmтm ). Отметим, что ф называется

сентенциональной строкой грамматики О . Рассмотрим строку х е У* в данной грамматике О. Запись

х

*

будет обозначать вывод из сентенциональной строки р е (Ум и УТ) в строку х, состоящую из терминальных символов УТ , т. е. (хеУТ*) . На рис. 1 вывод р х будет иметь вид:

<Р-

х:

///// //// V////

К

Х1 % Щ Х2 Т2 ЛГ3 Х3

Рис. 1

На этой диаграмме х. (/ = 1,3) являются подстрокой строки х . Процесс вывода начинается слева направо по очереди: Ы1 х1, затем тождественное отображение т1 еУТ* переходит на остаток строки х справа от х1, затем Ы2 х2 и т. д. (рис. 1). Этот грамматический разбор является левым, т. к. разбор начинается слева направо и задает однозначность операции отождествления. В результате этого разбора (на данном этапе) нетерминалы получают следующие значения: N = х1, Ы2 = х2, N3 = х3. Так как множество нетерминалов из р содержит множество нетерминалов у, то у получают однозначное значение: N (р) з N (у).

Вышеизложенное легко можно обобщить для т -го порядка:

*

р = Щц N2т2...N^1^ Nmтm , где г. е УТ (м.б. пустой строкой)

у = ¿1 N. ...N. , где могут быть пустыми строками.

1 m-1 m m ]

{N1,N2,...,Nm } 3 N ,N. ,...,Ni }.

ч__/ 12 m

Областью определения операции отождествления является множество

* О Вф = {х | х е Ут , ф х } .

Продемонстрируем на содержательном примере применение операции отождествления. Для этого рассмотрим фрагмент программы: начало

Л

имя имя цел 8, SQ ; \\ <описания> Ф2 8 := 2; SQ := 1; \\ <операторы> SQ := SQ + 8 \\

<программа> Ф1

конец.

У

Интуитивно понятно, что это отображение исходных данных на множество результативных данных Ф1:£ф ® Бу (Бф — область определения, В у — область результативных значений).

Естественным было бы рассмотреть отображение всей программы Ф1 как композицию функций. Поскольку синтаксис программы подчиняется синтаксическому правилу

<программа> : := начало <описания> ; <операторы> конец Ф1,

которое разбивает программу на два раздела <описания> и <операторы>, то естественным было бы построить отдельную функцию для <описания> - Ф2 и <операторы> - Ф4. Тогда функция Ф1 является композицией функцией Ф2 и Ф4 : Ф1 = Ф2 о Ф4 (прим. композиция выполняется слева направо, обычно в математике Ф1 = Ф 4(Ф 2 (исходные данные)).

Эту идею разбивки отображений и предложений в виде композиций более «мелких» функций можно рекурсивно продолжить по правилам синтаксической грамматики. Рассмотрим дерево грамматики (рис. 2).

Рис. 2 Заключение

Разработан подход к компьютерному моделированию динамических систем с помощью функциональных грамматик. Компьютерную программу удалось представить как суперпозицию базисных функций. В работе рассмотрена операция отождествления, которая является существенной при разработке моделирующих программ. Представлен фрагмент компьютерной программы, на которой выполнена операция отождествления и получен терм — суперпозиция базисных функций. Также построено дерево компьютерной программы, в узлах которой находятся базисные функции.

Литература

1. Тузов В. А. Математическая модель языка. Л.: Изд-во ЛГУ, 1984. 176 с.

2. Тузов В. А. Подход к построению универсальной схемы языка. Синтаксис // Программирование. 1980. № 5. С. 17-25.

MODELING OF A DYNAMIC SYSTEM BY FUNCTIONAL GRAMMARS

Darima D. Nikolaeva Research Assistant,

Dorzhi Banzarov Buryat State University 24a Smolina St., Ulan-Ude 670000, Russia E-mail: [email protected]

Dashadondok Sh. Shirapov Dr. Sci. (Phys. and Math.), Prof., Dorzhi Banzarov Buryat State University 24a Smolina St., Ulan-Ude 670000, Russia E-mail: [email protected]

Vladimir D. Anakhin

Dr. Sci. (Engineering), Prof.,

Dorzhi Banzarov Buryat State University,

24a Smolina St., Ulan-Ude 670000, Russia

E-mail: [email protected]

The article considers the problem of modeling a class of computer programs that generate computational processes and adequately describe the operation of a dynamic system. To solve this problem, we use the means of functional grammars. Identification is the basic operation of functional grammars. The article gives an example of using the identification operation on a fragment of the computer program that simulates a dynamic system. The end result is the obtaining of basic functions superposition with the involvement of the identification operation. The superposition obtained is an algebraic model of dynamic system, presented in the form of a computer program. We have constructed a parse tree for the computer program, which nodes contain the basic functions (non-terminals). If nodes require a representation in the form of functions (an object is the function), then this node is interpreted as a superposition of basic functions. If in nodes a representation in the form of text is required, then an object is the fragment of the program text corresponding to non-terminal (non-terminal in this node is a fragment of the program text). Also, nodes may require a representation in the form of values (an object is the result of the above superposition of functions corresponding to non-terminal). Keywords: dynamic systems; modeling; algebraic model of language; universal algebra; context-free grammar; recursion; interpreter; semantics.

References

1. Tuzov V. A. Matematicheskaya model yazika [A Mathematical Model of Language]. Leningrad: Leningrad State University Publ., 1984. 176 p.

2. Tuzov V. A. Podkhod k postroeniyu universalnoi skhemy yazika. Sintaksis [An Approach to the Construction of Universal Language Scheme. Syntax]. Programming and Computer Software. 1980. No. 5. Pp. 17-25.

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