The system for transforming the code of dataflow programs into imperative
Modelirovanie i analiz informacionnyh sistem, Tome 28 (2021) no. 2, pp. 198-214.

Voir la notice de l'article provenant de la source Math-Net.Ru

Functional dataflow programming languages are designed to create parallel portable programs. The source code of such programs is translated into a set of graphs that reflect information and control dependencies. The main way of their execution is interpretation, which does not allow to perform calculations efficiently on real parallel computing systems and leads to poor performance. To run programs directly on existing computing systems, you need to use specific optimization and transformation methods that take into account the features of both the programming language and the architecture of the system. Currently, the most common is the Von Neumann architecture, however, parallel programming for it in most cases is carried out using imperative languages with a static type system. For different architectures of parallel computing systems, there are various approaches to writing parallel programs. The transformation of dataflow parallel programs into imperative programs allows to form a framework of imperative code fragments that directly display sequential calculations. In the future, this framework can be adapted to a specific parallel architecture. The paper considers an approach to performing this type of transformation, which consists in allocating fragments of dataflow parallel programs as templates, which are subsequently replaced by equivalent fragments of imperative languages. The proposed transformation methods allow generating program code, to which various optimizing transformations can be applied in the future, including parallelization taking into account the target architecture.
Keywords: transformation of programs, dataflow parallel programming, program analysis, typing, intermediate program representations.
@article{MAIS_2021_28_2_a5,
     author = {V. S. Vasilyev and A. I. Legalov and S. V. Zykov},
     title = {The system for transforming the code of dataflow programs into imperative},
     journal = {Modelirovanie i analiz informacionnyh sistem},
     pages = {198--214},
     publisher = {mathdoc},
     volume = {28},
     number = {2},
     year = {2021},
     language = {ru},
     url = {http://geodesic.mathdoc.fr/item/MAIS_2021_28_2_a5/}
}
TY  - JOUR
AU  - V. S. Vasilyev
AU  - A. I. Legalov
AU  - S. V. Zykov
TI  - The system for transforming the code of dataflow programs into imperative
JO  - Modelirovanie i analiz informacionnyh sistem
PY  - 2021
SP  - 198
EP  - 214
VL  - 28
IS  - 2
PB  - mathdoc
UR  - http://geodesic.mathdoc.fr/item/MAIS_2021_28_2_a5/
LA  - ru
ID  - MAIS_2021_28_2_a5
ER  - 
%0 Journal Article
%A V. S. Vasilyev
%A A. I. Legalov
%A S. V. Zykov
%T The system for transforming the code of dataflow programs into imperative
%J Modelirovanie i analiz informacionnyh sistem
%D 2021
%P 198-214
%V 28
%N 2
%I mathdoc
%U http://geodesic.mathdoc.fr/item/MAIS_2021_28_2_a5/
%G ru
%F MAIS_2021_28_2_a5
V. S. Vasilyev; A. I. Legalov; S. V. Zykov. The system for transforming the code of dataflow programs into imperative. Modelirovanie i analiz informacionnyh sistem, Tome 28 (2021) no. 2, pp. 198-214. http://geodesic.mathdoc.fr/item/MAIS_2021_28_2_a5/

[1] K. Vivek, Parallel computing architectures and apis: iot big data stream processing, Dec. 2019 | DOI

[2] I. Levin, A. I. Dordopulo, V. A. Gudkov, Programming of reconfigurable computing nodes in the colamo language, Training manual, Publishing house of TTI SFEDU, Taganrog, 2011 (In Russian)

[3] A. I. Dordopulo, I. I. Levin, “Resource-independent programming of hybrid reconfigurable computing systems”, Russian supercomputing days, 2017, 714–723 (In Russian)

[4] V. Kasyanov, “Sisal 3.2: functional language for scientific parallel programming”, Enterprise Information Systems, 7:2 (2013), 227–236 | DOI

[5] A. I. Legalov, “Functional language for creating architecturally independent parallel programs”, Computing technologies, 10:1 (2005) | Zbl

[6] I. I. Levin, A. I. Dordopulo, I. V. Pisarenko, A. K. Melnikov, “An approach to architecture-independent programming of computing systems based on the aspect-oriented set@ language”, Proceedings of the Southern Federal University. Technical sciences, 197:3 (2018) (In Russian) | Zbl

[7] A. I. Legalov, V. S. Vasilev, I. V. Matkovskii, M. S. Ushakova, “A toolkit for the development of data-driven functional parallel programmes”, International conference on parallel computational technologies, Springer, 2018, 16–30 | DOI

[8] V. S. Vasilev, A. I. Legalov, “Loop-invariant optimization in the pifagor language”, Automatic Control and Computer Sciences, 52:7 (2018), 843–849 | DOI

[9] U. V. Udalova, A. I. Legalov, N. U. Sirotinina, “Methods for debugging and verifying functional-stream parallel programs”, Journal of the Siberian Federal University. Equipment and technologies, 4:2 (2011)

[10] M. S. Ushakova, A. I. Legalov, “Verification of programs with mutual recursion in pifagor language”, Automatic Control and Computer Sciences, 52:7 (2018), 850–866 | DOI

[11] S. V. Zykov, Fundamentals of modern programming. development of heterogeneous systems in an internet-oriented environment, IPR Media, 2017 | DOI

[12] A. I. Legalov, I. A. Legalov, I. V. Matkovsky, “Specifics of semantics of a statically typed language of functional and dataflow parallel programming”, Scientific conference scientific service on the internet, 2019, 489–500 | DOI

[13] A. I. Legalov, I. V. Matkovsky, M. S. Ushakova, D. S. Romanova, “Dynamically changing parallelism with the asynchronous sequential data flows”, Modeling and analysis of information systems, 27:2 (2020), 164–179 | DOI | MR

[14] O. V. Nepomnyashchiy, I. N. Ryzhenko, A. I. Legalov, “Method of architecture-independent high-level synthesis of vlsi”, Proceedings of the Southern Federal University. Technical sciences, 202:8 (2018)

[15] O. V. Nepomnyashchiy, I. N. Ryzhenko, A. I. Legalov, “Methods, algorithms, and software tools for architecturally independent high-level synthesis of single-chip digital systems”, Supercomputing technologies, SCT-2018, 2018, 104–109

[16] M. S. Ushakova, “Data type semantics of the dataflow parallel programming language pifagor”, Educational resources and technologies, 14:2 (2016)

[17] I. V. Matkovsky, A. I. Legalov, “Instrumental support for the translation and execution of functional-stream parallel programs”, Polzunovsky vestnik, 2013, no. 2, 49–52

[18] J. Ferrante, K. J. Ottenstein, J. D. Warren, “The program dependence graph and its use in optimization”, ACM Transactions on Programming Languages and Systems (TOPLAS), 9:3 (1987), 319–349 | DOI | Zbl

[19] V. M. Bakanov, “Software tools for analyzing the information structure of algorithms based on their information graphs”, Parallel computing technologies, PaVT'2016, 2016, 432–441