On Representation of Simulation Time in Functional Programming Style

  • PDF / 309,517 Bytes
  • 12 Pages / 612 x 792 pts (letter) Page_size
  • 68 Downloads / 175 Views

DOWNLOAD

REPORT


n Representation of Simulation Time in Functional Programming Style D. V. Buzdalova,*, A. K. Petrenkoa,c,**, and A. V. Khoroshilova,b,c,d,*** a

Ivannikov Institute for System Programming, Russian Academy of Sciences, ul. Solzhenitsyna 25, Moscow, 109004 Russia b Moscow Institute of Physics and Technology, Institutskii per. 9, Dolgoprudnyi, 141700 Russia c Moscow State University, Moscow, 119991 Russia d National Research University Higher School of Economics, ul. Myasnitskaya 20, Moscow, 101000 Russia *e-mail: [email protected] **e-mail: [email protected] ***e-mail: [email protected] Received July 19, 2019; revised July 24, 2019; accepted July 24, 2019

Abstract—Functional programming is becoming increasingly useful in the modern computerized world. This approach helps create code that is more reliable, easier to reason about, and automatically verifiable. However, these techniques are rarely employed for developing design tools and modeling critical systems. In this work, we try to apply some suitable techniques of functional programming to create a modeling system, namely, a simulation system for analyzing temporal behavioral properties of critical systems. As the first step, we design a representation of simulation time in terms of abstractions used in functional programming and try to investigate its compositionability. DOI: 10.1134/S0361768819080073

1. INTRODUCTION The context of this work is the design of architectural models for critical systems with subsequent check of these models for compliance with functional and nonfunctional requirements (requirements for fault tolerance, memory usage, transmission latency, etc.). Architectural models of software and hardware control systems represent the structure of the system and a set of behavior specifications for its individual components and their interconnections, including those describing temporal properties of their behavior. In particular, we consider the following characteristics of the system being modeled: the time it takes for the system to execute certain tasks and the delay in data communication within the system. In our previous works [1, 2], for dynamic analysis, we used the actor model while considering individual system components capable of behavior as independent communicating actors that operate in simulation time. We found that, as applied to the dynamic modeling of the behavior of system models, the system based on the actor model has the following disadvantages: •the nonlocality of the actor system:

◦actors rely on the presence of certain other actors (e.g., those capable of processing certain messages) but cannot guarantee or verify it; ◦it is impossible to automatically, statically (not by testing) estimate the correctness of replacing one actor with another if the third actor that uses the replaced one relies on some of its properties (e.g., on its ability to receive and fully process messages of a certain type); •the actor system is not typed: ◦the reception or non-reception of a message is resolved only at runtime and is not chec