The translator of Petri-object model visual programming language

High-level programming tools are aimed at increasing the development speed of complex programs due to automation within the routine actions of the programmer, reducing the number of coding errors and reducing the code in general. Visual programming involves coding based on a visual representation of...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Datum:2022
1. Verfasser: Dyfuchyn, А.Yu.
Format: Artikel
Sprache:Ukrainian
Veröffentlicht: PROBLEMS IN PROGRAMMING 2022
Schlagworte:
Online Zugang:https://pp.isofts.kiev.ua/index.php/ojs1/article/view/494
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Назва журналу:Problems in programming
Завантажити файл: Pdf

Institution

Problems in programming
id pp_isofts_kiev_ua-article-494
record_format ojs
resource_txt_mv ppisoftskievua/81/246b3adc8e58c62d3154ede7f9e48a81.pdf
spelling pp_isofts_kiev_ua-article-4942023-01-15T19:41:24Z The translator of Petri-object model visual programming language Транслятор мови візуального програмування Петрі-об’єктних моделей Dyfuchyn, А.Yu. visual programming; translator of the visual programming language; Petri-object model; formal grammar of the language; alphabet of symbols UDC 004.43::004.94 транслятор; формальна граматика; стохастична мережа Петрі; алгоритм імітації; Петрі-об’єктна модель UDC 004.43::004.94 High-level programming tools are aimed at increasing the development speed of complex programs due to automation within the routine actions of the programmer, reducing the number of coding errors and reducing the code in general. Visual programming involves coding based on a visual representation of a task for the computational process instead of a textual one. The translator of the visual programming language of Petri-object models is designed and built according to the defi ned formal grammar of the language and Petri-object model formalism. It performs the transformation of the visual representation of the model into the calculation of the simulation algorithm. The advantages of the developed language are a small alphabet of symbols, the opportunity for replication of objects and connections between them, and the versatile application for the discrete-event systems models development.Prombles in programming 2022; 2: 13-21 Високорівневі засоби програмування спрямовані на підвищення швидкості розробки складних програм за рахунок автоматизації рутинних дій програміста, зменшення кількості помилок при кодуванні та зменшення коду в цілому. Візуальне програмування передбачає кодування на основі візуального представлення завдання на виконання обчислень. Транслятор мови візуального програмування Петрі-об’єктних моделей, який розроблений, побудований відповідно до визначеної формальної граматики мови. Транслятор виконує перетворення візуального представлення Петрі-об’єктної моделі у текстову мову програмування та запускає на обчислення. Лексичний аналіз виконується під час створення візуального представлення моделі у клієнтському застосуванні. Семантичний аналіз і виконання обчислень моделі виконується серверним застосуванням. Наведено приклад, в якому представлено всі етапи перетворення віуального представлення моделі транслятором мови програмування. Перевагами розробленої мови є невеликий алфавіт символів, реалізація можливості для тиражування об’єктів та зв’язків між ними, універсальність застосування для розробки моделей дискретно-подійних систем.Prombles in programming 2022; 2: 13-21 PROBLEMS IN PROGRAMMING ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ ПРОБЛЕМИ ПРОГРАМУВАННЯ 2022-09-26 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/494 10.15407/pp2022.02.013 PROBLEMS IN PROGRAMMING; No 2 (2022); 13-21 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 2 (2022); 13-21 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 2 (2022); 13-21 1727-4907 10.15407/pp2022.02 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/494/492 Copyright (c) 2022 PROBLEMS IN PROGRAMMING
institution Problems in programming
baseUrl_str https://pp.isofts.kiev.ua/index.php/ojs1/oai
datestamp_date 2023-01-15T19:41:24Z
collection OJS
language Ukrainian
topic visual programming
translator of the visual programming language
Petri-object model
formal grammar of the language
alphabet of symbols
UDC 004.43::004.94
spellingShingle visual programming
translator of the visual programming language
Petri-object model
formal grammar of the language
alphabet of symbols
UDC 004.43::004.94
Dyfuchyn, А.Yu.
The translator of Petri-object model visual programming language
topic_facet visual programming
translator of the visual programming language
Petri-object model
formal grammar of the language
alphabet of symbols
UDC 004.43::004.94
транслятор
формальна граматика
стохастична мережа Петрі
алгоритм імітації
Петрі-об’єктна модель
UDC 004.43::004.94
format Article
author Dyfuchyn, А.Yu.
author_facet Dyfuchyn, А.Yu.
author_sort Dyfuchyn, А.Yu.
title The translator of Petri-object model visual programming language
title_short The translator of Petri-object model visual programming language
title_full The translator of Petri-object model visual programming language
title_fullStr The translator of Petri-object model visual programming language
title_full_unstemmed The translator of Petri-object model visual programming language
title_sort translator of petri-object model visual programming language
title_alt Транслятор мови візуального програмування Петрі-об’єктних моделей
description High-level programming tools are aimed at increasing the development speed of complex programs due to automation within the routine actions of the programmer, reducing the number of coding errors and reducing the code in general. Visual programming involves coding based on a visual representation of a task for the computational process instead of a textual one. The translator of the visual programming language of Petri-object models is designed and built according to the defi ned formal grammar of the language and Petri-object model formalism. It performs the transformation of the visual representation of the model into the calculation of the simulation algorithm. The advantages of the developed language are a small alphabet of symbols, the opportunity for replication of objects and connections between them, and the versatile application for the discrete-event systems models development.Prombles in programming 2022; 2: 13-21
publisher PROBLEMS IN PROGRAMMING
publishDate 2022
url https://pp.isofts.kiev.ua/index.php/ojs1/article/view/494
work_keys_str_mv AT dyfuchynayu thetranslatorofpetriobjectmodelvisualprogramminglanguage
AT dyfuchynayu translâtormovivízualʹnogoprogramuvannâpetríobêktnihmodelej
AT dyfuchynayu translatorofpetriobjectmodelvisualprogramminglanguage
first_indexed 2025-07-17T09:56:45Z
last_indexed 2025-07-17T09:56:45Z
_version_ 1850410340844568576
fulltext 13 Прикладні засоби програмування та програмне забезпечення Вступ Візуальне програмування є напрям- ком розробки засобів програмного забез- печення, спрямованим на застосування візуальних об’єктів для опису завдання на виконання обчислень. Для того, щоб візуальне представлення стало візуаль- ним програмуванням необхідно гаранту- вати однозначне перетворення візуально- го представлення в обчислення. Таке пе- ретворення забезпечує транслятор мови. Мережі Петрі є ключовим форма- лізмом для моделювання дискретно-по- дійних систем, який покриває широкий клас систем від автоматних до стохастич- них [1]. У контексті інженерії програмно- го забезпечення формалізм мереж Петрі є важливим ще й тому, що є загальноприй- нятим для розробки паралельних та роз- поділених обчислень відповідно до стан- дарту ISO/IEC 15909-1:2004 [2]. Найбільш відомим засобом моде- лювання мережами Петрі на сьогодніш- ній день є CPNTools [3]. CPNTools вирі- шує проблему великої кількості елемен- тів, необхідних для моделювання склад- них систем, через розширення типів мар- керів, які символізують стан системи, та через використання функціональної мови програмування CPN ML для опису стану системи [4]. Комбінування графічного представлення мережі Петрі з елемента- ми функціональної мови програмування зробило представлення моделі складним для сприйняття, оскільки основний зміст функціональності моделі часто прихова- ний за складними функціональними ви- разами. Технологія Петрі-об’єктного моде- лювання розвивається з 2011 року, коли була опублікована праця [5], в якій були розроблені теоретичні засади цього ме- тоду моделювання. Перевагою методу є можливість тиражування елементів мо- делі з однаковою поведінкою та констру- ювання моделі з фрагментів. У процесі констурювання забезпечуються умови, коли побудована модель має опис сто- хастичною мережею Петрі, отриманою об’єднанням мереж Петрі фрагментів моделі. Цей доведений теоретично факт є важливим для забезпечення обчислю- ваності Петрі-об’єктної моделі. Тобто, на відміну від інших існуючих способів кон- струювання моделі з фрагментів мереж Петрі, зберігається представлення ме- режею Петрі всієї моделі, не виникають сторонні елементи у представленні мо- делі, а також необхідність переходити до багаторівневого представлення моделі. Технологія застосовувалась для моделювання систем, що містять сотні об’єктів. Вона показала достатньо високу швидкодію як у процесі розробки моделі, так і в процесі експериментування з нею. Проте використання виключно редактора мережі Петрі у програмному забезпечен- УДК 004.43::004.94 https://doi.org/10.15407/pp2022.02.013 А.Ю. Дифучин ТРАНСЛЯТОР МОВИ ВІЗУАЛЬНОГО ПРОГРАМУВАННЯ ПЕТРІ-ОБ’ЄКТНИХ МОДЕЛЕЙ Високорівневі засоби програмування спрямовані на підвищення швидкості розробки складних про- грам за рахунок автоматизації рутинних дій програміста, зменшення кількості помилок при кодуванні та зменшення коду в цілому. Візуальне програмування передбачає кодування на основі візуального представлення завдання на виконання обчислень замість текстового. Запропонований транслятор мови візуального програмування Петрі-об’єктних моделей створений відповідно до визначеної формальної граматики мови та формалізму Петрі-об’єктної моделі. Він виконує перетворення візуального пред- ставлення моделі в обчислення алгоритму імітації. Перевагами розробленої мови є невеликий алфавіт символів, реалізація можливостей для тиражування об’єктів та зв’язків між ними, універсальність застосування для розробки моделей дискретно-подійних систем. Ключові слова: транслятор, формальна граматика, стохастична мережа Петрі, алгоритм імітації, Петрі-об’єктна модель © А.Ю. Дифучин, 2022 ISSN 1727-4907. Проблеми програмування. 2022. №2 14 Прикладні засоби програмування та програмне забезпечення ні виявило, що необхідний потужний ві- зуальний інструментарій для конструю- вання Петрі-об’єктної моделі, оскільки зв’язування Петрі-об’єктів текстовою мо- вою програмування потребувало значних зусиль, концентрації уваги і часу на на- лагодження. Формальна граматика мови Петрі- об’єктного моделювання розроблена у ви- гляді правил виведення в праці [7] і є кон- текстно-вільною (або граматикою типу 2 за ієрархією Хомського), однозначною і приведеною. У даному науковому досліджен- ні представлена розробка транслятора мови візуального програмування Петрі- об’єктних моделей, наведений опис се- мантики граматичних виразів мови та визначений спосіб їх перетворення в об- числення. 1. Конструювання Петрі-об’єктної моделі Петрі-об’єктні моделі застосову- ють для конструювання моделей дис- кретно-подійних систем. Під час побу- дови складної системи, її розбивають на структурні частини, що взаємодіють між собою, розробляють фрагменти моделі і поступово з’єднують їх. Кожній елементарній події, що відбувається в системі, ставиться у від- повідність перехід мережі Петрі. Умови для виникнення події символізують мар- кери в позиціях. Петрі-об’єктна модель складається з конструктивних елементів Петрі-об’єктів. Кожний Петрі-об’єкт є об’єктом суперкласу, що відтворює фун- ціонування Петрі-об’єкта відповідно до заданої в об’єкті мережі Петрі. Оскільки алгоритм імітації стохастичної мережі Петрі є універсальним, то побудована мо- дель одразу може запускатись на імітацію та виконання експериментальних дослі- джень. А зусилля, витрачені на побудову моделі, будуть компенсовані зменшенням витрат на написання та налагодження ал- горитму імітації. Детально поняття Петрі-об’єктної моделі викладено у публікації [8]. Петрі- об’єктом є об’єкт-нащадок суперкласу, що містить мережу Петрі та методи для відтворення функціональності об’єкта відповідно до заданої мережі. Зв’язки між Петрі-об’єктами задаються парами ототожнюваних позицій. Усі пари ото- тожнюваних позицій двох Петрі-об’єктів утворюють конектор, що з’єднує їх. У візуальному представленні мо- делі семантичне значення мають три- плети елементів Петрі-об’єкт – конектор – Петрі-об’єкт, які повністю визначають Петрі-об’єктну модель: де oi – j-ий Петрі-об’єкт, c – конектор від- повідних Петрі-об’єктів. Обчислюваність Петрі-об’єктної моделі випливає з того факту, що її функ- ціонування визначається мережею Петрі, отриманою об’єднанням мереж Петрі, з яких вона складена: , де m – модель, – символ операції агрегування, m.net – мережа Петрі моде- лі, oj.net – мережа Петрі-об’єкта oj. 2. Формальна граматика мови Петрі-об’єктного моделювання Для текстових мов програмування теорія формальних мов розроблена до- статньо детально [9, 10]. У застосуванні цієї теорії до візуальних мов основним проблемним питанням є спосіб визна- чення відношення попередній-наступний елемент у граматичному виразі. Іншим проблемним питанням граматики візу- альної мови програмування є визначен- ня слова як лексичної одиниці виведення граматичного виразу. У випадку графового представ- лення дискретно-подійної моделі від- ношення попередній-наступний логіч- но визначається відповідно до розпо- всюдження подій. Основною змістовою конструкцією, що формується з візуаль- ного представлення моделі, є триплети взаємопов’язаних елементів: позиція-ду- га-перехід, перехід-дуга-позиція, об’єкт- конектор-об’єкт, об’єкт-конектор-група об’єктів. Тому лексичною одиницею (сло- вом) обрано триплети елементів. 15 Прикладні засоби програмування та програмне забезпечення У публікації [7] визначена фор- мальна граматика мови. Алфавіт термі- нальних символів граматики визначений такими символами (вказані короткі по- значення символів): p – позиція мережі Петрі; t – перехід мережі Петрі; a – дуга мережі Петрі; o – Петрі-об’єкт; g – група Петрі-об’єктів; f – група колекцій Петрі-об’єктів; s – відкрита для з’єднання позиція Петрі-об’єкта; l – ототожнювач позицій Петрі- об’єктів. Алфавіт нетермінальних символів: E – триплет термінальних символів pat, що задає одну вхідну дугу переходу; Q - триплет термінальних символів tap, що задає одну вихідну дугу переходу; N – комбінація кількох нетермі- нальних символів E та Q, що може бути інтерпретована в мережу Петрі; W – комбінація символів, що визна- чає пару з’єднаних Петрі-об’єктів; Y – комбінація символів, що ви- значає з’єднання Петрі-об’єкта з групою Петрі-об’єктів; X – комбінація символів, що визна- чає з’єднання Петрі-об’єкта з групою ко- лекцій; C – конектор Петрі-об’єктів, що скла- дається з кількох ототожнювачів позицій. Для кожного символа грамати- ки визначене відповідне візуальне його представлення [7]. Правила виведення граматики мови: (1) , (2) , (3) (4) (5) (6) , (7) , (8) , (9) , (10) , (11) , (12) . На рисунку 1 наведений приклад візуального представлення моделі, в ре- зультаті розбору якого як граматичного виразу отримуємо: Generator 0…n Queuing Generator Output Queuing Queue Output Output Always 1 Generate Generator Output Queue 1 Resource 1 Serve 1 Queuing system 1 Resource 2 Serve 2 exp, 2.0, 2.0, 1.0 exp, 2.0, 2.0, 1.0, 1.0 exp, 1.0, 1.0, 1.0 exp, 1.0, 1.0, 1.0 Рис. 1. Візуальне представлення Петрі-об’єктної моделі масового обслуговування: мережі Петрі-об’єктів, ототожнення позицій Петрі-об’єктів, триплет об’єкт-конектор-група. 16 Прикладні засоби програмування та програмне забезпечення Тобто модель складається з трипле- та Петрі-об’єкт – конектор – група Петрі- об’єктів. Мережа Петрі об’єкта Generator складається з одного триплета позиція – дуга – перехід та одного триплета пере- хід– дуга – позиція. Мережа Петрі об’єкта Queuing з групи складається з 4 триплетів позиція – дуга – перехід та 4 триплетів перехід– дуга – позиція. 3. Транслятор мови Мова візуального програмування Петрі-об’єктних моделей реалізована у вигляді веб-застосування. Сучасні веб технології надають гнучкості у реалізації візуального редактора Петрі-об’єктних моделей, а віддалене виконання процесу імітації позбавляє залежності від обме- женого локального ресурсу користувача. Візуальний редактор мови програмуван- ня Петрі-об’єктних моделей реалізований у клієнтському застосуванні і дозволяє будувати візуальне представлення іміта- ційної моделі. Перетворення візуального представлення моделі у текстову інтер- претацію та запуск обчислень алгоритму імітації виконується серверним застосу- ванням. Для цієї мети розроблено тран- слятор мови. Транслятор мови програмування включає в себе три послідовні фази: лек- сичний аналіз, синтаксичний аналіз та семантичний аналіз. Лексичний аналіз візуального представлення моделі - це виявлення у візуальному представленні лексем, тобто наборів візуальних сим- волів. Елементами лексики є візуально представлені символи алфавіту мови: по- зиція, перехід, дуга, Петрі-об’єкт, група Петрі-об’єктів, відкрита для з’єднання позиція, ототожнювач позицій, конектор. Результат класифікації лексем є вхідною інформацією для синтаксичного аналіза- тора. Задачею синтаксичного аналізу є побудова синтаксичного дерева, яке яв- ляє собою розташування всіх синтаксич- них елементів візуального представлення моделі відповідно до правил виведення граматики. На цьому етапі елементи лек- сики візуальної мови інтерпретуються як трійки термінальних елементів, що визначають зв’язки між елементами ме- режі Петрі, а також зв’язки між Петрі- об’єктами. Семантичний аналіз та генерація коду є заключною фазою трансляції, що інтерпретує смисловий зміст та правила виконання конструкцій виділених син- таксичним аналізатором. Оскільки візу- альний редактор являє собою клієнтську частину веб застосування, а виконання процесу імітації відбувається на серве- рі, транслятор виконує перетворення ві- зуального представлення моделі у тек- стовий формат JSON. Формат передачі даних між клієнтським застосуванням і серверним застосуванням JSON є за- гальноприйнятим і являє собою текст, що містить структуру даних «ключ – зна- чення». Процес трансляції починається вже під час побудови візуального пред- ставлення моделі. В момент створення користувачем зображення елемента ме- режі Петрі або Петрі-об’єкта, створюєть- ся його текстова інтерпретація. В момент з’єднання візуальних елементів між со- бою будується синтаксичне дерево, що містить трійки елементів. У таблиці 1 на- ведена структура вихідного JSON мовою TypeScript. Вихідний JSON є результатом роботи транслятора на клієнтській час- тині та містить інтерпретацію символів алфавіту мови. Під час конструювання моделі формується кінцева текстова ін- терпретація моделі у форматі JSON, що відповідає синтаксичному дереву і від- правляється на сервер. Наступний етап трансляції відбу- вається у серверному застосуванні. Отри- мавши текстову інтерпретацію моделі серверне застосування здійснює обхід синтаксичного дерева та створення від- повідних об’єктів, що передаються в кон- структор класу PetriObjModel бібліо- теки Петрі-об’єктного моделювання [8]. Фінальний етап включає в себе запуск процесу імітації викликом методу go(t) класу PetriObjModel, аргумент t яко- го вказує на час виконання імітації. У конекторі важливим є порядок, в якому вказуються з’єднувані об’єкти, оскільки програмно з’єднання реалізується суміщенням адрес пам’яті відповідних по- зицій об’єктів. Якщо у конструюванні мо- 17 Прикладні засоби програмування та програмне забезпечення р yp p Графічне представ- лення символу Скорочене позначення символу Інтерпретація мовою TypeScript p type p = { id: number name: string mark: number } t type t = { id: number name: string distribution: string delay: number deviation: number probability: number priority: number } a type a = { id: number name: string quantity: number placeId: number transitionId: number info: boolean } E type E = [p, a, t] Q type Q = [t, a, p] N type N = { id: number name: string listE: Array<E> listQ: Array<Q> sharedPlaces: Array<number> } o type o = { id: number name: string petriNetId: number } s type s = { petriObjectId: number placeId: number } sls type sls = [s, s] С type C = Array<sls> W type W = [o, C, o] Name Name placeName Name placeName placeName placeName k 1 1 Name d, r, v, f Name k q Name 2 pName pName Таблиця 1 Текстова інтерпретація символів алфавіту мови візуального програмування Петрі-об’єктних моделей мовою TypeScript 18 Прикладні засоби програмування та програмне забезпечення делі використано з’єднання Link(obj_a, P_a, obj_b, P_b), то позиція P_a об’єкту obj_a буде ототожнена позицією P_b об’єкта obj_b . Якщо наступним кро- ком виконано з’єднання Link(obj_a, P_a, obj_с, P_с), то позиція P_a об’єкта obj_a буде ототожнена позицією P_с об’єкта obj_с. Тепер адреса позиції P_a збігається з позицією P_с і попере- дньо виконане з’єднання з P_b втраче- но. Щоб організувати з’єднання усіх трьох позицій в одну, потрібно виконати ототож- нення позиції P_b з P_a і в наступному кроці позиції P_с з P_a. В такому разі всі три позиції вказуватимуть на позицію P_a (рис. 1). Саме тому в процесі приєднання до групи в конекторі першим вказуєть- ся об’єкт групи, а другим – об’єкт, з яким з’єднуються усі об’єкти групи. У конструк- торі групи конектор тиражується для всіх об’єктів групи і всі об’єкти будуть отриму- вати інформацію від одного об’єкта. Отри- муємо зв’язок типу one-to-many. P_a P_a P_a P_b P_c No links Link(obj_b, P_b, obj_a, P_a) Link(obj_c, P_c, obj_a, P_a) P_a P_a P_a P_c P_b P_b P_c No links Link(obj_a, P_a, obj_b, P_b) P_a P_b P_c Link(obj_a, P_a, obj_с, P_с) P_c P_b P_c (а) Рис. 2. Встановлення зв’язків між позиці-ями Петрі-об’єктів: а) послідовність, яка призводить до знищення попереднього зв’язку, б) послідовність, яка призводить до зв’язку one-to-many g type g = { id: number, name: string petriObj: o quantity: number } Y type Y = [o, C, g] f type f = { id: number name: string listW: Array<W> quantity: number } X type X = [o, C, f] - I type model = { id: number name: string time: number listObj: Array<o> listW: Array<W> listY: Array<Y> listN: Array<N> } 0…n Name Name Name 0…n Name Name Name 0…n Name 0…n Name 19 Прикладні засоби програмування та програмне забезпечення Перетворення Петрі-об’єктної моделі в модель обчислень відбуваєть- ся з використанням алгоритму імітації на останньому етапі. Оскільки функці- онування моделі визначається мережею Петрі, отриманою об’єднанням мереж Петрі усіх об’єктів моделі, то алгоритм імітації виконує обчислення за тими ж правилами, що і алгоритм імітації сто- хастичної мережі Петрі з часовими за- тримками з багатоканальними перехо- дами. Проте є суттєвий виграш у склад- ності обчислень через те, що пошук найближчої події здійснюється не по всій мережі, а по моментам найближчої події Петрі-об’єктів. По-друге, через розповсюдження подій в межах одного Петрі-об’єкта (доки не буде досягнута позиція-ототожнювач) перевірка умов виконання події та здійснення події від- бувається переглядом тільки елементів одного Петрі-об’єкта замість перегляду всієї мережі Петрі [6]. Імітація моделі здійснюється ви- конанням таких дій [11]: - виконати вхід маркерів в переходи для всіх об’єктів; - доки не вичерпаний час моделювання: • визначити момент найближчої події; • просунути час у момент най- ближчої події; • змінити стан моделі у відпо- відності до події. Зміна стану моделі складається з таких дій: - виконати вихід маркерів з усіх кана- лів переходу, для яких час виходу з кана- лу співпадає з поточним моментом часу; - визначити переходи, для яких вико- нана умова входу маркерів, і, за необхід- ності, розв’язати конфлікт переходів; - виконати вихід маркерів з обраного на попередньому кроці переходу; - виконати вхід маркерів в переходи для усіх об’єктів. Отже, перетворення відбувається через послідовні кроки: 1) транслятор виконує аналіз візуальних символів, які додаються, і визначає лексеми, які утво- рюються, 2) правильно утворені грама- тичні вирази (тобто такі, що відповіда- ють визначеним правилам граматики) зберігаються, 3) інтерпретація набору виявлених лексем та формування на- бору даних моделі у форматі JSON, 4) перетворення моделі з формату JSON у об’єкт класу PetriObjModel, 5) за- пуск обчислень викликом методу go(t) класу PetriObjModel, аргумент t якого вказує на час виконання імітації. 4. Приклад розробки та запуску моделі на обчислення Через обмежений обсяг матері- алу, який можна розмістити у статті, перетворення візуального представлен- ня моделі у її обчислення наведемо на простому прикладі моделі масового об- слуговування (рис. 1). Зауважимо, що завдяки використанню групи об’єктів побудована модель в залежно від па- раметру n відтворює функціонування системи з різною кількістю обробників замовлень, які надходять на обслугову- вання з генератора - 1. Під час викорис- тання звичайних блочних редакторів, які широко використовують у симуля- торах, довелось би з’єднувати вручну у візуальному редакторі усі n об’єкти. Очевидно, що при великих n це потре- бує значних зусиль. Окрім того, пере- гляд усіх n зв’язків з метою їх перевір- ки чи корегування також потребуватиме значних зусиль. Результат перетворення тран- слятором візуального представлення моделі у JSON наведений на рисунку 3. Результат перетворення JSON пред- ставлення моделі у java код та запуск моделі на імітацію представлений на рисунку 4. При запуску імітації можемо пе- ресвідчитись у правильності отрима- них результатів і переконатись, що час за умови збільшення складності моделі збільшується поліноміально. Оскільки модель допускає теоретичний розраху- нок, то за результатом порівняння отри- маних результатів імітації з теоретич- ними робимо висновок про коректність виконаних перетворень. Помилка при часі моделювання 1000000 не переви- щувала 5%. 20 Прикладні засоби програмування та програмне забезпечення Рис. 3. Результат перетворення транслятором візуального представлення моделі у тексто-вий формат JSON. Рис. 4. Результат перетворення транслятором текстового формату JSON у java код. 21 Прикладні засоби програмування та програмне забезпечення Висновки Розроблений транслятор мови візу- ального програмування Петрі-об’єктних моделей, який виконує перетворення ві- зуального представлення Петрі-об’єктної моделі у текстову мову програмування та запускає на обчислення. Лексичний аналіз виконується під час створення ві- зуального представлення моделі у клієнт- ському застосуванні. Семантичний аналіз і виконання обчислень моделі виконуєть- ся серверним застосуванням. Поняття Петрі-об’єктної моделі для тиражування зв’язків розширено по- няттями конектор Петрі-об’єктів, група Петрі-об’єктів, колекція Петрі-об’єктів. Наведено приклад, в якому пред- ставлено усі етапи перетворення віуаль- ного представлення моделі транслятором мови програмування. Порівняння резуль- татів імітації з теоретичними доводить коректність виконаних перетворень. References 1. Petri nets : fundamental models, verifica- tion, and applications. Michel Diaz (ed.) Willey, 2009. 581 p. 2. ISO/IEC 15909-1:2004 Systems and soft- ware engineering — High-level Petri nets — Part 1: Concepts, definitions and graphi- cal notation. [Online] – Available from: https://www.iso.org/standard/38225.html, last accessed 2022/07/2. 3. CPNTools [Online] – Available from: https:// cpntools.org/, last accessed 2022/07/2. 4. Jensen, K., Kristensen, L.M. (2009). CPN ML Programming. In: Coloured Petri Nets. Springer, Berlin, Heidelberg. https://doi. org/10.1007/b95112_3. 5. Стеценко И.В. (2011) Теоретические основы Петри-объектного моделирования систем. Математичні машини і системи, 136-148. 6. Stetsenko I. V., Dorosh V. I., Dyfuchyn A. Petri-object simulation: Software package and complexity. 2015 IEEE 8th International Conference on Intel- ligent Data Acquisition and Advanced Computing Systems: Technology and Applications (IDAACS), 2015, pp. 381- 385. (Scopus) https://doi.org/ 10.1109/ IDAACS.2015.7340762. 7. Дифучин А.Ю., Стеценко І.В., Жаріков Е.В. Граматика мови візуального програмуван- ня Петрі-об’єктних моделей // Проблеми програмування. – Київ, 2021. - №4. – С.82- 94. https://doi.org/10.15407pp2021.04.082 8. Stetsenko, I.V., Dyfuchyn, A.: Petri-ob- ject Simulation: Technique and Software. Information, Computing and Intelligent Systems 1, 51-59 (2020). https://doi. org/10.20535/2708-4930.1.2020.216057 9. Kimball J. P. The Formal Theory of Gram- mar Prentice-Hall, 1973 - 127 p. 10. Becerra-Bonache L., Bel-Enguix G., Jimé- nez-López M. D., Martín-Vide C. (2018). Mathematical Foundations: Formal Gram- mars and Languages. In: The Oxford Hand- book of Computational Linguistics, Second Edition (2nd edn) Ruslan Mitkov (ed.) [On- line] – Available from: https://academic. oup.com/edited-volume/42643/chapter-abs tract/358148992?redirectedFrom=fulltext, last accessed 2022/07/2. 11. Stetsenko I.V. (2017) Parallel Algorithm for Petri Object Simulation. Cybernetics and Systems Analysis. 53(4), 605–614. Отримано 16.07.2022 Про автора: Дифучин Антон Юрійович, аспірант 4 року навчання кафедри інформатики та програмної інженерії НТУУ “КПІ імені Ігоря Сікорського”. Кількість наукових публікацій в українських виданнях – 3. Кількість наукових публікацій в іноземних виданнях – 3. Індекс Хірша – 1. https://orcid.org/0000-0002-1722-8840 Місце роботи автора: Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського», 03056, м. Київ, проспект Перемоги 37. Тел.: (044) 236-9651 e-mail: difuchin@gmail.com