<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">mais</journal-id><journal-title-group><journal-title xml:lang="ru">Моделирование и анализ информационных систем</journal-title><trans-title-group xml:lang="en"><trans-title>Modeling and Analysis of Information Systems</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">1818-1015</issn><issn pub-type="epub">2313-5417</issn><publisher><publisher-name>Yaroslavl State University</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.18255/1818-1015-2024-1-32-53</article-id><article-id custom-type="elpub" pub-id-type="custom">mais-1837</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>Theory of Software</subject></subj-group></article-categories><title-group><article-title>Верификация моделей программ на процесс-ориентированном расширении языка Structured Text стандарта IEC 61131-3</article-title><trans-title-group xml:lang="en"><trans-title>Model checking programs in process-oriented IEC 61131-3 Structured Text</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0001-9734-3808</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Гаранина</surname><given-names>Наталья Олеговна</given-names></name><name name-style="western" xml:lang="en"><surname>Garanina</surname><given-names>Natalia O.</given-names></name></name-alternatives><email xlink:type="simple">garanina@iis.nsk.su</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0001-5183-9736</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Старолетов</surname><given-names>Сергей Михайлович</given-names></name><name name-style="western" xml:lang="en"><surname>Staroletov</surname><given-names>Sergey M.</given-names></name></name-alternatives><email xlink:type="simple">serg_soft@mail.ru</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-8198-3197</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Зюбин</surname><given-names>Владимир Евгеньевич</given-names></name><name name-style="western" xml:lang="en"><surname>Zyubin</surname><given-names>Vladimir E.</given-names></name></name-alternatives><email xlink:type="simple">zyubin@iae.nsk.su</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0001-9574-128X</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Ануреев</surname><given-names>Игорь Сергеевич</given-names></name><name name-style="western" xml:lang="en"><surname>Anureev</surname><given-names>Igor S.</given-names></name></name-alternatives><email xlink:type="simple">anureev@iis.nsk.su</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Институт автоматики и электрометрии СО РАН</institution><country>Россия</country></aff><aff xml:lang="en"><institution>Institute of Automation and Electrometry SB RAS</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2024</year></pub-date><pub-date pub-type="epub"><day>28</day><month>03</month><year>2024</year></pub-date><volume>31</volume><issue>1</issue><fpage>32</fpage><lpage>53</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Гаранина Н.О., Старолетов С.М., Зюбин В.Е., Ануреев И.С., 2024</copyright-statement><copyright-year>2024</copyright-year><copyright-holder xml:lang="ru">Гаранина Н.О., Старолетов С.М., Зюбин В.Е., Ануреев И.С.</copyright-holder><copyright-holder xml:lang="en">Garanina N.O., Staroletov S.M., Zyubin V.E., Anureev I.S.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://www.mais-journal.ru/jour/article/view/1837">https://www.mais-journal.ru/jour/article/view/1837</self-uri><abstract><p>Процессно-ориентированное программирование — это парадигма, основанная на концепции процесса. Каждый процесс представляет собой конечный автомат. Эта парадигма предназначена для разработчиков ПЛК (программируемых логических контроллеров) для написания программного обеспечения с поддержкой Индустрии 4.0. Язык poST является многообещающим процессно-ориентированным расширением языка структурированного текста (ST) МЭК 61131-3, предназначенным для обеспечения концептуальной согласованности исходного кода ПЛК с технологическим описанием управляемого процесса. Этот язык сочетает в себе преимущества программирования на основе конечных автоматов со стандартным синтаксисом языка ST. Мы предлагаем трансформационную семантику poST, заданную правилами перевода операторов языка poST в Promela — входной язык средства проверки моделей SPIN. Следуя этим правилам, наш транслятор, основанный на технологии Xtext, строит модель Promela для программы poST. Основной вклад нашей статьи — это трансформационная семантика poST и метод автоматической генерации кода Promela из программ управления PoST. Полученная модель Promela готова к проверке с помощью системы верификации моделей SPIN на соответствие требованиям к исходной программе poST, выраженных в терминах линейной темпоральной логики LTL. В статье мы приводим обзор связанных работ, а также краткое описание языков poST и Promela. Представленные далее правила трансляции poST в Promela покрывают операторы потока управления, конструкции создания процессов и управления их состояниями, а также операторы для таймаутов. Отдельно определены сервисные процессы для моделирования внешней среды и задания высокоуровневых LTL спецификаций. Затем мы останавливаемся на основных идеях реализации транслятора poST в Promela, и далее иллюстрируем наш подход на примере системы управления потреблением и производством электроэнергии, в том числе из возобновляемых источников.</p></abstract><trans-abstract xml:lang="en"><p>The process-oriented programming is a paradigm based on the process concept where each process is a concurrent finite state machine inside. The paradigm is intended for PLC (programmable logic controllers) developers to write Industry 4.0-enabled software. The poST language is a promising process-oriented extension of the IEC 61131-3 Structured Text (ST) language designed to provide a conceptual consistency of the PLC source code with technological description of the process under control. This language combines the advantages of FSM-based programming with the standard syntax of the ST language. We propose transformational semantics of poST providing rules for translation of poST language statements to Promela — the input language of the SPIN model checker. Following these semantic rules, our Xtext-based translator outputs a Promela model for the poST program. Our contribution is the poST transformational semantics and the method for automatic generation of the Promela code from poST control programs. The resulting Promela program is ready to be verified with SPIN model checker against linear temporal logic requirements to the source poST program. In the paper we provide an overview of related work, as well as a brief description of the poST and Promela languages. Further, the Promela poST translation rules cover control flow statements, process creation and state management constructs, and timeout management. Then we define service processes for modeling the external environment and managing high-level LTL specifications. Then we present the main ideas of implementing the translator poST to Promela. We also illustrate our approach using the example of a system for managing electricity consumption and production, including renewable sources.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>управляющее программное обеспечение</kwd><kwd>проверка моделей</kwd><kwd>процесс-ориентированное программирование</kwd><kwd>LTL</kwd><kwd>SPIN</kwd><kwd>Structured Text</kwd></kwd-group><kwd-group xml:lang="en"><kwd>control software</kwd><kwd>model checking</kwd><kwd>process-oriented programming</kwd><kwd>LTL</kwd><kwd>SPIN</kwd><kwd>Structured Text</kwd></kwd-group><funding-group><funding-statement xml:lang="ru">Госзадание ИАиЭ СО РАН, проект No 122031600173-8, госзадание No АААА-А19-119120290056-0.</funding-statement><funding-statement xml:lang="en">State task IAaE SB RAS, project No. 122031600173-8, state task No. AAAA-A19-119120290056-0.</funding-statement></funding-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">IEC, “IEC 61131-3: 2013 Programmable controllers-Part 3: programming languages.” 2013, [Online]. Available: https://webstore.iec.ch/publication/4552.</mixed-citation><mixed-citation xml:lang="en">IEC, “IEC 61131-3: 2013 Programmable controllers-Part 3: programming languages.” 2013, [Online]. Available: https://webstore.iec.ch/publication/4552.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">T. M. Antonsen, PLC Controls with Structured Text (ST), V3: IEC 61131-3 and best practice ST programming. Books on Demand, 2020.</mixed-citation><mixed-citation xml:lang="en">T. M. Antonsen, PLC Controls with Structured Text (ST), V3: IEC 61131-3 and best practice ST programming. Books on Demand, 2020.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">V. E. Zyubin, “Hyper-automaton: a Model of Control Algorithms,” in 2007 Siberian Conference on Control and Communications, 2007, pp. 51–57, doi: 10.1109/SIBCON.2007.371297.</mixed-citation><mixed-citation xml:lang="en">V. E. Zyubin, “Hyper-automaton: a Model of Control Algorithms,” in 2007 Siberian Conference on Control and Communications, 2007, pp. 51–57, doi: 10.1109/SIBCON.2007.371297.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">V. E. Zyubin, A. S. Rozov, I. S. Anureev, N. O. Garanina, and V. Vyatkin, “poST: A Process-Oriented Extension of the IEC 61131-3 Structured Text Language,” IEEE Access, vol. 10, pp. 35238–35250, 2022, doi: 10.1109/ACCESS.2022.3157601.</mixed-citation><mixed-citation xml:lang="en">V. E. Zyubin, A. S. Rozov, I. S. Anureev, N. O. Garanina, and V. Vyatkin, “poST: A Process-Oriented Extension of the IEC 61131-3 Structured Text Language,” IEEE Access, vol. 10, pp. 35238–35250, 2022, doi: 10.1109/ACCESS.2022.3157601.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">G. J. Holzmann, The SPIN Model Checker, Primer and Reference Manual. Addison-Wesley, Reading, Massachusetts, 2003.</mixed-citation><mixed-citation xml:lang="en">G. J. Holzmann, The SPIN Model Checker, Primer and Reference Manual. Addison-Wesley, Reading, Massachusetts, 2003.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">L. Schneider and D. Schultes, “Evaluating Swift-to-Kotlin and Kotlin-to-Swift transpilers,” in Proceedings of the 9th IEEE/ACM International Conference on Mobile Software Engineering and Systems, 2022, pp. 102–106.</mixed-citation><mixed-citation xml:lang="en">L. Schneider and D. Schultes, “Evaluating Swift-to-Kotlin and Kotlin-to-Swift transpilers,” in Proceedings of the 9th IEEE/ACM International Conference on Mobile Software Engineering and Systems, 2022, pp. 102–106.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">E. M. Clarke, T. A. Henzinger, H. Veith, R. Bloem, and others, Handbook of model checking. Springer, 2018.</mixed-citation><mixed-citation xml:lang="en">E. M. Clarke, T. A. Henzinger, H. Veith, R. Bloem, and others, Handbook of model checking. Springer, 2018.</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">T. Ovatman, “An overview of model checking practices on verification of PLC software,” Software &amp; Systems Modeling, vol. 4, no. 15, pp. 937–960, 2016.</mixed-citation><mixed-citation xml:lang="en">T. Ovatman, “An overview of model checking practices on verification of PLC software,” Software &amp; Systems Modeling, vol. 4, no. 15, pp. 937–960, 2016.</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">E. M. Clarke, E. A. Emerson, and A. P. Sistla, “Automatic verification of finite-state concurrent systems using temporal logic specifications,” ACM Transactions on Programming Languages and Systems (TOPLAS), vol. 8, no. 2, pp. 244–263, 1986.</mixed-citation><mixed-citation xml:lang="en">E. M. Clarke, E. A. Emerson, and A. P. Sistla, “Automatic verification of finite-state concurrent systems using temporal logic specifications,” ACM Transactions on Programming Languages and Systems (TOPLAS), vol. 8, no. 2, pp. 244–263, 1986.</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">C. A. R. Hoare, “Communicating sequential processes,” Communications of the ACM, vol. 21, no. 8, pp. 666–677, 1978.</mixed-citation><mixed-citation xml:lang="en">C. A. R. Hoare, “Communicating sequential processes,” Communications of the ACM, vol. 21, no. 8, pp. 666–677, 1978.</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">N. O. Garanina, S. M. Staroletov, V. E. Zyubin, and I. S. Anureev, “Model Checking Programs in Process-Oriented IEC 61131-3 Structured Text,” System Informatics, vol. 22, pp. 21–30, 2023, doi: 10.31144/si.2307-6410.2023.n22.p21-30.</mixed-citation><mixed-citation xml:lang="en">N. O. Garanina, S. M. Staroletov, V. E. Zyubin, and I. S. Anureev, “Model Checking Programs in Process-Oriented IEC 61131-3 Structured Text,” System Informatics, vol. 22, pp. 21–30, 2023, doi: 10.31144/si.2307-6410.2023.n22.p21-30.</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">M. Weissmann, S. Bedenk, C. Buckl, and A. Knoll, “Model checking industrial robot systems,” in Model Checking Software. SPIN 2011, 2011, pp. 161–176.</mixed-citation><mixed-citation xml:lang="en">M. Weissmann, S. Bedenk, C. Buckl, and A. Knoll, “Model checking industrial robot systems,” in Model Checking Software. SPIN 2011, 2011, pp. 161–176.</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">P. Cousot, “Abstract interpretation,” ACM Computing Surveys, vol. 28, no. 2, pp. 324–328, 1996, doi: 10.1145/234528.234740.</mixed-citation><mixed-citation xml:lang="en">P. Cousot, “Abstract interpretation,” ACM Computing Surveys, vol. 28, no. 2, pp. 324–328, 1996, doi: 10.1145/234528.234740.</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</label><citation-alternatives><mixed-citation xml:lang="ru">S. Leue and G. Holzmann, “v-Promela: A visual, object-oriented language for SPIN,” in Proceedings of the 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, 1999, pp. 14–23.</mixed-citation><mixed-citation xml:lang="en">S. Leue and G. Holzmann, “v-Promela: A visual, object-oriented language for SPIN,” in Proceedings of the 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, 1999, pp. 14–23.</mixed-citation></citation-alternatives></ref><ref id="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">M. Benerecetti et al., “From dynamic state machines to Promela,” in International Symposium on Model Checking Software, 2019, pp. 56–73.</mixed-citation><mixed-citation xml:lang="en">M. Benerecetti et al., “From dynamic state machines to Promela,” in International Symposium on Model Checking Software, 2019, pp. 56–73.</mixed-citation></citation-alternatives></ref><ref id="cit16"><label>16</label><citation-alternatives><mixed-citation xml:lang="ru">B. Lion, S. Chouali, and F. Arbab, “Compiling Protocols to Promela and Verifying their LTL Properties,” in Proceedings of 21st MODELS Workshops, 2018, pp. 31–39.</mixed-citation><mixed-citation xml:lang="en">B. Lion, S. Chouali, and F. Arbab, “Compiling Protocols to Promela and Verifying their LTL Properties,” in Proceedings of 21st MODELS Workshops, 2018, pp. 31–39.</mixed-citation></citation-alternatives></ref><ref id="cit17"><label>17</label><citation-alternatives><mixed-citation xml:lang="ru">A. Klarl, “From Helena ensemble specifications to Promela verification models,” in Model Checking Software. SPIN 2015, 2015, pp. 39–45.</mixed-citation><mixed-citation xml:lang="en">A. Klarl, “From Helena ensemble specifications to Promela verification models,” in Model Checking Software. SPIN 2015, 2015, pp. 39–45.</mixed-citation></citation-alternatives></ref><ref id="cit18"><label>18</label><citation-alternatives><mixed-citation xml:lang="ru">N. Dilley and J. Lange, “Bounded verification of message-passing concurrency in Go using Promela and SPIN,” in Proceedings of the 12th International Workshop on Programming Language Approaches to Concurrency- and Communication-cEntric Software, 2010, pp. 34–45, doi: 10.4204/EPTCS.314.4.</mixed-citation><mixed-citation xml:lang="en">N. Dilley and J. Lange, “Bounded verification of message-passing concurrency in Go using Promela and SPIN,” in Proceedings of the 12th International Workshop on Programming Language Approaches to Concurrency- and Communication-cEntric Software, 2010, pp. 34–45, doi: 10.4204/EPTCS.314.4.</mixed-citation></citation-alternatives></ref><ref id="cit19"><label>19</label><citation-alternatives><mixed-citation xml:lang="ru">N. Dilley and J. Lange, “Automated Verification of Go Programs via Bounded Model Checking,” in 36th IEEE/ACM International Conference on Automated Software Engineering (ASE), 2021, pp. 1016–1027.</mixed-citation><mixed-citation xml:lang="en">N. Dilley and J. Lange, “Automated Verification of Go Programs via Bounded Model Checking,” in 36th IEEE/ACM International Conference on Automated Software Engineering (ASE), 2021, pp. 1016–1027.</mixed-citation></citation-alternatives></ref><ref id="cit20"><label>20</label><citation-alternatives><mixed-citation xml:lang="ru">E. Brinksma, A. Mader, and A. Fehnker, “Verification and optimization of a PLC control schedule,” International Journal on Software Tools for Technology Transfer, vol. 4, no. 1, pp. 21–33, 2002, doi: 10.1007/s10009-002-0079-0.</mixed-citation><mixed-citation xml:lang="en">E. Brinksma, A. Mader, and A. Fehnker, “Verification and optimization of a PLC control schedule,” International Journal on Software Tools for Technology Transfer, vol. 4, no. 1, pp. 21–33, 2002, doi: 10.1007/s10009-002-0079-0.</mixed-citation></citation-alternatives></ref><ref id="cit21"><label>21</label><citation-alternatives><mixed-citation xml:lang="ru">M. Xia, M. Sun, G. Luo, and X. Zhao, “Design and implementation of automatic verification for PLC systems,” in IEEE 12th International Conference on Cognitive Informatics and Cognitive Computing, 2013, pp. 374–379.</mixed-citation><mixed-citation xml:lang="en">M. Xia, M. Sun, G. Luo, and X. Zhao, “Design and implementation of automatic verification for PLC systems,” in IEEE 12th International Conference on Cognitive Informatics and Cognitive Computing, 2013, pp. 374–379.</mixed-citation></citation-alternatives></ref><ref id="cit22"><label>22</label><citation-alternatives><mixed-citation xml:lang="ru">P. Liu, G. Luo, M. Xia, and M. He, “Automatic verification of event-driven control programs: a case study,” in The Fourth International Workshop on Advanced Computational Intelligence, 2011, pp. 249–256.</mixed-citation><mixed-citation xml:lang="en">P. Liu, G. Luo, M. Xia, and M. He, “Automatic verification of event-driven control programs: a case study,” in The Fourth International Workshop on Advanced Computational Intelligence, 2011, pp. 249–256.</mixed-citation></citation-alternatives></ref><ref id="cit23"><label>23</label><citation-alternatives><mixed-citation xml:lang="ru">T. Liakh, R. Sorokin, D. Akifev, S. Patil, and V. Vyatkin, “Formal model of IEC 61499 execution trace in FBME IDE,” in IEEE 20th International Conference on Industrial Informatics (INDIN), 2022, pp. 588–593.</mixed-citation><mixed-citation xml:lang="en">T. Liakh, R. Sorokin, D. Akifev, S. Patil, and V. Vyatkin, “Formal model of IEC 61499 execution trace in FBME IDE,” in IEEE 20th International Conference on Industrial Informatics (INDIN), 2022, pp. 588–593.</mixed-citation></citation-alternatives></ref><ref id="cit24"><label>24</label><citation-alternatives><mixed-citation xml:lang="ru">V. Shatrov and V. Vyatkin, “Promela Formal Modelling and Verification of IEC 61499 Systems with comparison to SMV,” in IEEE 19th International Conference on Industrial Informatics (INDIN), 2021, pp. 1–6.</mixed-citation><mixed-citation xml:lang="en">V. Shatrov and V. Vyatkin, “Promela Formal Modelling and Verification of IEC 61499 Systems with comparison to SMV,” in IEEE 19th International Conference on Industrial Informatics (INDIN), 2021, pp. 1–6.</mixed-citation></citation-alternatives></ref><ref id="cit25"><label>25</label><citation-alternatives><mixed-citation xml:lang="ru">A. Ebnenasir, “Formalizing Ladder Logic Programs and Timing Charts for Fault Impact Analysis and Verification of Fault Tolerance,” Michigan Technological University, CS-TR-23-01, Jan. 2023.</mixed-citation><mixed-citation xml:lang="en">A. Ebnenasir, “Formalizing Ladder Logic Programs and Timing Charts for Fault Impact Analysis and Verification of Fault Tolerance,” Michigan Technological University, CS-TR-23-01, Jan. 2023.</mixed-citation></citation-alternatives></ref><ref id="cit26"><label>26</label><citation-alternatives><mixed-citation xml:lang="ru">A. Mader, “A Classification of PLC Models and Applications,” Discrete Event Systems: Analysis and Control, vol. 569, pp. 239–246, 2000.</mixed-citation><mixed-citation xml:lang="en">A. Mader, “A Classification of PLC Models and Applications,” Discrete Event Systems: Analysis and Control, vol. 569, pp. 239–246, 2000.</mixed-citation></citation-alternatives></ref><ref id="cit27"><label>27</label><citation-alternatives><mixed-citation xml:lang="ru">N. O. Garanina et al., “A Temporal Logic for Programmable Logic Controllers,” Automatic Control and Computer Sciences, vol. 55, no. 7, pp. 763–775, 2021, doi: 10.3103/S0146411621070038.</mixed-citation><mixed-citation xml:lang="en">N. O. Garanina et al., “A Temporal Logic for Programmable Logic Controllers,” Automatic Control and Computer Sciences, vol. 55, no. 7, pp. 763–775, 2021, doi: 10.3103/S0146411621070038.</mixed-citation></citation-alternatives></ref><ref id="cit28"><label>28</label><citation-alternatives><mixed-citation xml:lang="ru">M. Eysholdt and H. Behrens, “Xtext: implement your language faster than the quick and dirty way,” in Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, 2010, pp. 307–309.</mixed-citation><mixed-citation xml:lang="en">M. Eysholdt and H. Behrens, “Xtext: implement your language faster than the quick and dirty way,” in Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, 2010, pp. 307–309.</mixed-citation></citation-alternatives></ref><ref id="cit29"><label>29</label><citation-alternatives><mixed-citation xml:lang="ru">D. Steinberg, F. Budinsky, E. Merks, and M. Paternostro, EMF: Eclipse modeling framework. Pearson Education, 2008.</mixed-citation><mixed-citation xml:lang="en">D. Steinberg, F. Budinsky, E. Merks, and M. Paternostro, EMF: Eclipse modeling framework. Pearson Education, 2008.</mixed-citation></citation-alternatives></ref><ref id="cit30"><label>30</label><citation-alternatives><mixed-citation xml:lang="ru">“ANTLR: A predicated-LL(k) parser generator,” Software: Practice and Experience, vol. 25, no. 7, pp. 789–810, 1995.</mixed-citation><mixed-citation xml:lang="en">“ANTLR: A predicated-LL(k) parser generator,” Software: Practice and Experience, vol. 25, no. 7, pp. 789–810, 1995.</mixed-citation></citation-alternatives></ref><ref id="cit31"><label>31</label><citation-alternatives><mixed-citation xml:lang="ru">D. Lepri, E. 'Abrah'am, and P. C. "Olveczky, “Sound and complete timed CTL model checking of timed Kripke structures and real-time rewrite theories,” Science of Computer Programming, vol. 99, pp. 128–192, 2015.</mixed-citation><mixed-citation xml:lang="en">D. Lepri, E. 'Abrah'am, and P. C. "Olveczky, “Sound and complete timed CTL model checking of timed Kripke structures and real-time rewrite theories,” Science of Computer Programming, vol. 99, pp. 128–192, 2015.</mixed-citation></citation-alternatives></ref><ref id="cit32"><label>32</label><citation-alternatives><mixed-citation xml:lang="ru">N. Rhodes and J. McKeehan, Palm OS programming: the developer's guide. O'Reilly Media, Inc., 2002.</mixed-citation><mixed-citation xml:lang="en">N. Rhodes and J. McKeehan, Palm OS programming: the developer's guide. O'Reilly Media, Inc., 2002.</mixed-citation></citation-alternatives></ref><ref id="cit33"><label>33</label><citation-alternatives><mixed-citation xml:lang="ru">R. Miles and K. Hamilton, Learning UML 2.0: a pragmatic introduction to UML. O'Reilly Media, Inc., 2006.</mixed-citation><mixed-citation xml:lang="en">R. Miles and K. Hamilton, Learning UML 2.0: a pragmatic introduction to UML. O'Reilly Media, Inc., 2006.</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
