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

№ 3 (35), 2015 Технические науки. Информатика, вычислительная техника

УДК 004.94

Д. В. Пащенко, Д. А. Трокоз, Г. В. Мартяшин, К. С. Максимова, Е. А. Бальзанникова

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

Аннотация.

Актуальность и цели. Объектом исследования является разработанный функциональный язык «Т», который применяется для разработки алгоритмов работы распределенной системы управления. Предметом исследования является способ представления функционального языка в виде сетевой модели на основе цветных иерархических безопасных рекурсивных сетей Петри. Цель работы - формальное описание языка «Т» в виде сетевой модели для дальнейшего его использования в области проектирования и представления параллельных вычислительных систем.

Материалы и методы. Формальное описание языка «Т» проведено с использованием модели цветных иерархических безопасных рекурсивных сетей Петри.

Результаты. Даны определение и ограничения языка «Т». Показаны особенности представления данного языка в виде сетевой модели на основе сети Петри.

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

Ключевые слова: Сети Петри, язык «Т», рекурсия, ленивые вычисления, тензоры.

D. V. Pashchenko, D. A. Trokoz,

G. V. Martyashin, K. S. Maksimova, E. A. Bal'zannikova

NETWORK MODEL OF "T" LANGUAGE BASED ON COLOURED SAFE HIERARCHICAL RECURSIVE PETRI NETS

Abstract.

Background. The research object is the developed functional T language, used for development of distributed control system algorithms. The research subject is a way of representing the functional language in the form of a network model based on coloured safe recursive hierarchical Petri nets. The purpose of the work is to

1 Работа выполнена в рамках гранта РНФ на проведение фундаментальных научных исследований и поисковых научных исследований с привлечением молодых исследователей по теме «Анализ и синтез сетевых структур сложных систем на основе тензорных и трансформационных методов» (соглашение № 15-11-10010).

Engineering sciences. Computer science, computer engineering and control

25

Известия высших учебных заведений. Поволжский регион

formally describe the T language in the form of a network model for its further use in design and presentation of parallel computing systems.

Materials and methods. The T language was formally described using a model of safe recursive hierarchical coloured Petri nets.

Results. The authors defined and described limitations of the T language. The article shows the features of introduction of the language in the form of a network model based on Petri nets.

Conclusions. The authors propose a special kind of functional languages - the T language, intended to describe distributed automated control system algorithms. The proposed method of presentation of the language will make it possible to design a scheme, described in the T language, using the mathematical apparatus of Petri nets. Besides the presented method, the scheme can be described by methods of tensor calculus, as well as translation methods of obtained network models transformation.

Key words: Petri nets, T language, recursion, lazy evaluation, tensors.

Введение

Язык «Т» - функциональный язык, преимуществом которого является предоставляемая им возможность распараллеливания вычислений [1]. Это делает его удобным и достаточно востребованным средством разработки программного обеспечения для распределенных систем управления. Стоит отметить, что данный язык успешно используется для проектирования распределенной системы управления наземной инфраструктурой ракетно-космической техники [2]. Помимо этого, еще одним положительным фактором является сходство языка «Т» с языком функциональных блоков FBD, который, в свою очередь, является традиционно используемым средством в области разработки программного обеспечения для систем управления.

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

В то же время язык «Т» удовлетворяет требованиям, позволяющим разбить алгоритм на несколько независимых подпрограмм, а именно:

- отсутствие обратных связей;

- отсутствие циклов как частного случая обратной связи;

- отсутствие локальных переменных как ячеек памяти.

В отличие от языка FBD, в котором циклы реализуются посредством переменных (локальных или глобальных), язык «Т» не допускает использование локальных переменных, в результате чего становится невозможно организовать цикл. Отсутствие циклов в данном языке компенсируется наличием оператора вызова функции, поскольку любой цикл можно представить в виде рекурсии. Пользовательские функции задаются как совокупность функциональных блоков, в том числе определенных в основной схеме. Использование блока рекурсивного вызова совместно с блоком оператора выбора SEL позволяет ограничить количество вызовов функции и избежать переполнения стека.

26

University proceedings. Volga region

№ 3 (35), 2015 Технические науки. Информатика, вычислительная техника

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

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

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

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

В области проектирования и представления параллельных вычислительных систем следует учитывать следующие рекомендации [3]:

1. Применение параллельных вычислительных систем (ПВС) является обязательным условием решения сложных задач и формирования информационных ресурсов на этой основе.

2. Эффективное решение задач на ПВС должно сопровождаться согласованием структуры численных методов и архитектуры вычислительных систем (ВС).

3. При решении проблемы синтеза эффективных вычислительных структур в качестве математического фундамента целесообразно использовать тензорное исчисление.

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

Исходя из вышесказанного, а также работы [4], можно сделать вывод о том, что использование тензорного подхода к исследованию сложных схем, в свою очередь представленных с помощью сетей Петри, является одним из наиболее эффективных способов построения сложных параллельных вычис-

Engineering sciences. Computer science, computer engineering and control

27

Известия высших учебных заведений. Поволжский регион

лительных систем. Как показано в статье [4], использование тензорных методов существенно упрощает процедуру построения возможных структур исследуемой сложной системы в координатах примитивной системы, а также делает рутинной процедуру преобразования новых структур сложных систем в исходные координаты. Такой подход дает новые возможности для построения методов синтеза структур сложных систем, а его использование является целесообразным.

Таким образом, необходимо представить схемы языка «Т» с помощью сетей Петри, которые обладают наилучшими возможностями описания параллельных систем [5]. Для этой цели лучше всего подходят цветные иерархические безопасные рекурсивные сети, т.е. сети, все позиции которых безопасны, а также могут содержать метки различных типов и немгновенные переходы, в которые вложены другие сети.

1. Описание языка «Т» на сетях Петри

Учитывая организацию языка «Т», представить реализованную на нем схему в виде сетей Петри достаточно просто. В данном случае в качестве фишек будут использоваться сигналы, в качестве переходов - функции того или иного блока, а также входные переменные в качестве позиций.

В качестве примера рассмотрим схему, описанную на языке «Т», вычисляющего линейную функцию вида P = ax + b , показанную на рис. 1.

Рис. 1. Схема, вычисляющая значение линейной функции, описанная на языке «Т»

Сеть Петри, эквивалентная данной схеме на языке «Т», показана на рис. 2. Таким образом, входные целочисленные переменные x, а и b соответствуют позициям S1, S2 и S4, в которых в начальный момент времени располагаются фишки. Поскольку в схеме присутствует два функциональных блока: блок умножения и блок сложения, в эквивалентной схеме, представленной в виде сети Петри, будут размещены два перехода: t1 и t2 соответственно. Поскольку сеть Петри не допускает переходов между вершинами одного типа, необходимо ввести дополнительную позицию между переходами t1 и t2, которая хранит промежуточное значение в переменной P1. Выходной целочисленной переменной P соответствует позиция S5. Попадание фишки на вершину S5 будет означать, что вычисление значения линейной функции завершено и результат располагается в переменной P.

Рассмотренный пример показывает, как простейшая схема, представленная на языке «Т», может быть преобразована в эквивалентную сеть Петри.

Далее рассмотрим пример вычисления функции полинома второй степени вида P = ax2 + bx + c. Схема на языке «Т» для вычисления подобного полинома представлена на рис. 3.

28

University proceedings. Volga region

№ 3 (35), 2015 Технические науки. Информатика, вычислительная техника

Рис. 2. Сеть Петри, эквивалентная схеме, вычисляющей значение линейной функции, на языке «Т»

Рис. 3. Схема вычисления полинома второй степени, описанная на языке «Т»

Так как эквивалентная сеть Петри является безопасной (т.е. не допускает одновременного нахождения нескольких маркеров в одной позиции), следует создать дополнительный переход, который на выходе формирует количество фишек, соответствующее количеству функциональных блоков, для которых данный сигнал является входным. В данном случае входная переменная х является входной для двух блоков умножения и трижды используется в качестве входного сигнала. Исходя из этого введен дополнительный переход t1, который формирует три маркера целочисленного типа, которые содержат значение переменной х, осуществляя переход в промежуточные позиции S1, S3, S4. Полученная эквивалентная сеть Петри для вычисления значения полинома второй степени показана на рис. 4.

Язык «Т», поскольку является разновидностью языка FBD, предполагает циклическую дисциплину исполнения, т.е. по завершении одного цикла работы алгоритма происходит сохранение значения глобальных переменных, после чего инициируется следующий цикл. Исходя из этого для построения эквивалентной сети Петри необходимо также обеспечить возврат к исходной маркировке. Для этой цели вводится специальный переход. Он осуществляется из позиции, соответствующей выходной переменной в те позиции, которые в начальный момент времени должны содержать маркер. Подразумевается, что в процессе данного перехода выполняется функция, в результате выполнения которой фишки, перемещающиеся в выходные позиции, содержат обновленные значения входных переменных схемы для следующего цикла работы, а фишка, перемещающаяся из входной позиции, обновляет значение выходной переменной схемы. Для рассмотренного примера вычисления зна-

Engineering sciences. Computer science, computer engineering and control

29

Известия высших учебных заведений. Поволжский регион

чения полинома второй степени циклическая дисциплина исполнения реализуется при помощи перехода t6, как показано на рис. 5.

Рис. 4. Сеть Петри, эквивалентная схеме вычисления полинома второй степени на языке «Т»

Рис. 5. Сеть Петри для вычисления полинома второй степени, реализующая циклическую дисциплину исполнения

2. Описание функции, содержащей тернарный оператор выбора

Далее рассмотрим пример вычисления функции, содержащей тернарный оператор выбора, P = a > b ? a2-c : a * с + b. Схема на языке «Т» для вычисления данной функции представлена на рис. 6.

Оператор тернарного выбора реализует так называемую ленивую модель вычислений, т.е. значение выражения вычисляется только в том случае, если оно понадобилось. Значение выражения (a2 - с) будет вычислено только в том случае, если выполняется условие a > b, в противном случае будет вычислено выражение a * с + b. Для реализации подобных вычислений сеть Петри, эквивалентная данной схеме, должна содержать дополнительные позиции запроса вычисления, являющиеся входными для переходов, выполняющих

30

University proceedings. Volga region

№ 3 (35), 2015 Технические науки. Информатика, вычислительная техника

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

Рис. 6. Схема вычисления функции, содержащей тернарный оператор выбора, описанная на языке «Т»

Рис. 7. Сеть Петри, эквивалентная схеме вычисления функции на языке «Т», содержащей тернарный оператор выбора

В представленной сети присутствует фишка запроса вычисления req. В результате перемещения этой фишки в зависимости от значения выражения P1 будет выполнен переход t5 или t6, что приведет к последующим переходам t7, t8, моделирующим вычисление выражения (а2 - с), или t9, t10, моделирующим вычисление выражения а * с + b соответственно.

Engineering sciences. Computer science, computer engineering and control

31

Известия высших учебных заведений. Поволжский регион

Так как отсутствие циклов в данном языке компенсируется наличием оператора вызова функции, поскольку любой цикл можно представить в виде рекурсии [6], целесообразно рассмотреть функцию, содержащую рекурсию. Рассмотрим в качестве такой функции функцию итерационной суммы вида n

Sum = c + ^ a  k . Схема на языке «Т» для вычисления данной функции k=0

представлена на рис. 8.

Рис. 8. Схема на языке «Т» для вычисления функции, содержащей рекурсию

Так как функции в сетях Петри реализуются переходами, рекурсивная функция также является переходом. Из этого следует, что переход является иерархическим и содержит вложенную сеть Петри. При этом немаловажным является то, что во вложенной функции позиции, соответствующие входным переменным, отождествляются с соответствующими входными позициями такого иерархического перехода, а позиция, соответствующая выходной переменной, отождествляется с выходной позицией. Эквивалентная приведенной схеме сеть Петри, реализующая рекурсивный вызов функции, представлена на рис. 9.

Переходом, содержащим вложенную функцию и реализующим рекурсию, является переход t11. В результате перемещения фишки запроса вычисления в зависимости от значения выражения окончания цикла P1 будет выполнен переход t7 или t8, что приведет к последующему переходу t9, моделирующему выполнение последней итерации цикла, или t10, t11, моделирующим выполнение очередной итерации цикла соответственно.

Заключение

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

32

University proceedings. Volga region

№ 3 (35), 2015 Технические науки. Информатика, вычислительная техника

Рис. 9. Сеть Петри, эквивалентная схеме вычисления функции на языке «Т», содержащей рекурсию

Список литературы

1. Трокоз, Д. А. Особенности трансляции из функционального языка «Т» в программный код на языке «С» / Д. А. Трокоз, Е. А. Бальзанникова, Г. В. Мартяшин // Информационные технологии в науке и образовании. Проблемы и перспективы : сб. науч. ст. II ежегодной межвуз. студ. науч.-прак. конф. - Пенза : Изд-во ПГУ, 2015. - С. 90-93.

2. Пащенко, Д. В. Алгоритм трансляции из функционального языка «Т» в программные модули на языке «С» / Д. В. Пащенко, Е. А. Бальзанникова, Д. А. Трокоз // Новые информационные технологии и системы : тр. XI Междунар. науч.-техн. конф. - Пенза : Изд-во ПГУ, 2014. - С. 54-57.

3. Кулагин, В. П. Формирование информационных ресурсов на основе параллельных вычислений / В. П. Кулагин // Перспективы науки и образования. -2013. - № 6.

4. Кулагин, В. П. Тензорные методы исследования структур сетей Петри / В. П. Кулагин // Информационные технологии. - 2015. - Т. 21, № 2. - С. 84-94.

5. Пащенко, Д. В. Разработка многопоточной модели программного обеспечения экспертной системы авиационных радиолокационных комплексов / Д. В. Пащенко, Д. А. Трокоз // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2011. - № 3 (19). - С. 56-64.

6. Tail recursion / Paul E. Black // Dictionary of Algorithms and Data Structures [online]. - U.S. National Institute of Standards and Technology, 2008. - 14 August.

Engineering sciences. Computer science, computer engineering and control

33

Известия высших учебных заведений. Поволжский регион

References

1. Trokoz D. A., Bal'zannikova E. A., Martyashin G. V. Informatsionnye tekhnologii v nauke i obrazovanii. Problemy i perspektivy: sb. nauch. st. II ezhegodnoy mezhvuz. stud. nauch. -prak. konf [Information technologies in science and education. Problems and prospects: proceedings of II Annual interuniversity student scientific and practical conference]. Penza: Izd-vo PGU, 2015, pp. 90-93.

2. Pashchenko D. V., Bal'zannikova E. A., Trokoz D. A. Novye informatsionnye tekhnologii i sistemy: tr. XIMezhdunar. nauch.-tekhn. konf. [New information technologies and systems: proceedings of XI International scientific and technical conference]. Penza: Izd-vo PGU, 2014, pp. 54-57.

3. Kulagin V. P. Perspektivy nauki i obrazovaniya [Prospects of science and education]. 2013, no. 6.

4. Kulagin V. P. Informatsionnye tekhnologii [Information technologies]. 2015, vol. 21, no. 2, pp. 84-94.

5. Pashchenko D. V., Trokoz D. A. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Tekhnicheskie nauki [University proceedings. Volga region. Engineering sciences]. 2011, no. 3 (19), pp. 56-64.

6. Paul E. Black Tail recursion. Dictionary of Algorithms and Data Structures [online]. U.S. National Institute of Standards and Technology, 2008, 14 August.

Пащенко Дмитрий Владимирович

доктор технических наук, профессор, заведующий кафедрой вычислительной техники, Пензенский государственный университет

E-mail: dmitry.pashchenko@gmail.com

Трокоз Дмитрий Анатольевич

кандидат технических наук, доцент, кафедра вычислительной техники, Пензенский государственный университет

E-mail: dmitriy.trokoz@gmail.com

Мартяшин Георгий Викторович

магистрант, Пензенский государственный университет

E-mail: nowargore@gmail.com

Максимова Кристина Станиславовна магистрант, Пензенский государственный университет

E-mail: maximovachristina@gmail.com

Pashchenko Dmitriy Vladimirovich Doctor of engineering sciences, professor, head of sub-department of computer engineering, Penza State University

Trokoz Dmitriy Anatol'evich Candidate of engineering sciences, associate professor, sub-department of computer engineering, Penza State University

Martyashin Georgiy Viktorovich

Master’s degree student, Penza State University

Maksimova Kristina Stanislavovna

Master’s degree student,

Penza State University

34

University proceedings. Volga region

№ 3 (35), 2015 Технические науки. Информатика, вычислительная техника

Бальзанникова Елена Алексеевна студентка, Пензенский государственный университет

Bal'zannikova Elena Alekseevna Student, Penza State University

E-mail: elenabalzannikova@gmail.com

УДК 004.94

Сетевая модель языка «Т» на основе цветных безопасных иерархических рекурсивных сетей Петри / Д. В. Пащенко, Д. А. Трокоз, Г. В. Мар-тяшин, К. С. Максимова, Е. А. Бальзанникова // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2015. - № 3 (35). -С.25-35.

Engineering sciences. Computer science, computer engineering and control

35