Cybernetics and Systems Analysis, Vol. 54, No . 5, September, 2018 SOFTWARE–HARDWARE SYSTEMS THE DOMAIN-SPECIFIC LANGUAGE STRUMOK FOR DESCRIBING ACTOR-ORIENTED SYSTEMS WITH SHARED MEMORY V. O. Larin, 1† O. V. Bantysh, 1‡ O. V. Galkin, 1†† and O. I. Provotar 2 UDC 004.434:004.75 Abstract. The domain-specific language (DSL) Strumok is proposed for describing inter-actor interaction and operation with shared memory. The efficiency of the language Strumok in comparison with that of the Java Vert.x framework is assessed using shared memory. Keywords: actor model, parallel system with shared memory, domain-specific language (DSL) of programming, Akka, Java. INTRODUCTION The modern process of developing parallel and distributed systems is nontrivial and resource-intensive. To simplify such systems, different conceptual approaches and toolkits are created. For example, to overcome the complexity barrier of design, an approach using separate functional entities, namely, an actor model is proposed. At the present time, the most perfect tool for developing and deploying such systems is the software toolkit Akka. However, it also has definite drawbacks, namely, the interaction and behavior of actors in it are described at a low level. As a consequence, for systems with many actors and, accordingly, scripts of communication between them, the text of a description becomes unobvious and complicatedly supported. Moreover, any mechanism of composition is not built into actors, and their capabilities of static typification of messages are bounded. The main problem of actors (but their advantage at the same time) is the reliable insulation of their internal state, which leads to the prohibition on shared memory. In practice, in real-world tasks, there often arises a justified need for shared data of two types, namely, unchangeable within the framework of the actor model and arbitrarily changeable by actors. To overcome the mentioned drawbacks, the concept of the domain-specific language Strumok has been formulated, which potentially simplifies the creation of complicated actor-oriented systems with the help of high-level primitives of inter-actor interaction and the concept of shared inter-actor data. ACTOR-ORIENTED PROGRAMMING AND AKKA The objective of this work is the definition of the semantics and syntax of the domain-specific actor programming language Strumok and the basic principles of translating it into source Java code compatible with Akka and also checking the efficiency of the obtained results in comparison with other solutions. The actor model is a mathematical model treating the concept of an “actor” as a universal primitive for parallel computing as follows: in response to messages that an actor obtains, it can change its local state, create new actors, and send messages to the actors known to it. The actor model was first described in 1973. It was used as the basis for understanding the computation of processes and the theoretical basis for a number of practical implementations of parallel systems [1]. 833 1060-0396/18/5405-0833 © 2018 Springer Science+Business Media, LLC 1 Taras Shevchenko National University of Kyiv, Kyiv, Ukraine, vlarinmain@gmail.com; iambantysh@gmail.com; †† galkin@unicyb.kiev.ua. 2 Taras Shevchenko National University of Kyiv, Kyiv, Ukraine and University of RzeszËw, RzeszËw, Poland, aprowata@unicyb.kiev.ua. Translated from Kibernetika i Sistemnyi Analiz, No. 5, September–October, 2018, pp. 170–180. Original article submitted October 19, 2017. DOI 10.1007/s10559-018-0085-1