## 8 Related Work
Besides, in RT-Sequencer, the definition of the construct's semantics is undefined and based on the GPL code provided by advanced end-users. Our collaboration process is yet to be studied. It can be one of our future directions, where domain experts engage and play an active role in language development in RT-Sequencer. Literature review studies are an essential source of knowledge, and many also exist for the DSLs as well [28; 30; 46]. A survey paper [46] discussed what features practitioners expect from meta-modeling tools. The participants in the survey preferred to use DSMLs with diagrammatic notation with model-to-text transformations, whilst modeling editors should enable the reuse of the existing models stored in a repository. Moreover, a modeling editor should support an error marker to highlight the semantic errors at modeling time, and detect errors that may occur during the code generation process. The practitioners want syntax and semantic validation rules regarding language validation. Regarding language composability, the most crucial aspect is to reuse existing language semantics. Our meta-modeling tool indeed possesses all the required features. On the other hand, a survey [30] concentrates on end-user involvement during the design, development, and evaluation of DSLs, and their impact on the DSL life cycle. From the point of view of end-user involvement in RT-Sequencer development, this study is also interesting for us to compare our development with practices reported in the study [30]. [PERSON] and [PERSON] [30] provides six recommendations for DSL development. We can confirm that these recommendations regarding end-user involvement are adequate (e.g., expert evaluation for DSL evaluation, flexibility in the development process, the need for tool support, etc). In [47], the authors applied Model-Driven Engineering (MDE) for TinyOS applications where low-power wireless devices were used forming Wireless Sensors Networks (WSNs). In such an environment, the developers need to have deep knowledge of neSC, an extension of the C programming language for TinyOS. The authors pay special attention to how manually written code in neSC can synchronize with programs/models written in DSML4 TinyOS [47]. Namely, after the code modifications are performed in neSC, related changes must be synchronized with programs/models; otherwise, models become inconsistent. For this purpose, they introduce a model-driven round-trip engineering methodology. RT-Sequencer uses a forward engineering process where the RT program is modeled, and the corresponding code is generated using the modeling tool. Changing the program code is unnecessary in our case, since the GPL code can be nested inside the model by creating new blocks. As a result, there is no need for reverse engineering in the RT-Sequencer. The comparison in research literature brings valuable and essential insights. However, comparisons in industry settings are, in most cases, hard to achieve. Superficially, from a domain-expert point of view, we can compare RT-Sequencer with similar solutions, for instance, TwinCAT ([[https://www.beckhoff.com/en-us/products/automation/twincat/](https://www.beckhoff.com/en-us/products/automation/twincat/)]([https://www.beckhoff.com/en-us/products/automation/twincat/](https://www.beckhoff.com/en-us/products/automation/twincat/)) (accessed on 12 October 2022)). A TwinCAT is a well-known development environment usually used for instrument control and industrial automation. It offers the possibility to program runtime modules in C/C++ within MS Visual Studio. The development tool also supports graphical programming language based on IEC 61131-3 standard. The standard defines the structure of programs, variables and data types, standard functions, and function blocks. It defines four basic programming languages, such as the Instruction List (IL), Structured Text (ST), Ladder Diagram (LD), and Function Block Diagram (FBD). An additional fifth, designed to structure tasks and program modules, is the Sequential Function Chart (SFC).