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