Propagator-Oriented Programming Model Using Java

: cc. 9 - 16
Lviv Polytechnic National University, Ukraine
Department for Informatics, Kazimierz Pulaski University of Technology and Humanities in Radom; Research Institute for Intelligent Computer Systems, Ternopil National Economic University

The aim of this work is to explore and analyze an unconventional style of programming based on a pro- pagator-oriented model of computation. The paradigm of propagation is characterized by networks of local, independent, stateless machines interconnected with stateful storage cells. This model allows for a highly modular design and multidirectional computation, enabling the creation of complex systems that can respond to changes and update their state accordingly.

This work provides an overview of the propagator- oriented programming model, its motivations, and its advantages over other well-known alternative styles, using unsophisticated examples written in the Java programming language. We illustrate how propagator networks can  be used to build flexible and efficient systems and present a basic framework for building such networks. The foun- dational components of the propagation model are imple- mented in Java as groundwork for the general-purpose framework.

We demonstrate the power of propagator-oriented prog- ramming through an example of a Pythagorean Theorem implementation. The example shows how the model can be used to build complex systems of an arbitrary number of constraints and cells. We highlight the  importance of information propagation over limited linear  computation and the benefits of the multidirectional computation enabled by propagator networks.

  1. A. Kulkarni, M. Lang, A. Lumsdaine, (2011). GoDEL: A Multidirectional Dataflow Execution Model for Large- Scale Computing. First Workshop on Data-Flow Execution Models for Extreme Scale Computing. Pp. 10– 18. [Online]. DOI:
  2. Belaid, M.-B., Bessiere, C., Lazaar, N., (2019). Constraint Programming for Association Rules. Proceedings of the 2019 SIAM International Conference on Data Mining.Society for Industrial and Applied Mathematics. [Online]. Pp. 112–125. DOI: 
  3. Prud'homme C., Fages J., (2022). Choco-solver: A Java library for constraint programming. Journal of Open Source Software. Pp. 1–5. [Online]. Available: (Accessed 02/21/2023)
  4. Baumgartner, P., (2021). The Fusemate Logic Programming System (System Description). ArXiv. Pp. 85–107. [Online]. DOI:
  5. Perez, I., Goodloe, A.E., (2020). Fault-tolerant functional reactive programming (extended version), Journal of Functional Programming. Cambridge University Press (CUP). Pp. 57–72. [Online]. DOI:
  6. Radul A., Sussman G. J., (2009). The art of the propagator. Proceedings of the 2009 international lisp conference. Pp. 15–31. [Online]. DOI:
  7. Radul A., (2009). Propagation Networks: A Flexible and Expressive Substrate for Computation. Computer Science and Artificial Intelligence Laboratory Technical Report. Massachusetts Institute of Technology. Pp. 75–98. [Online]. DOI:
  8. Lilis, Y., Savidis, A., (2019). A Survey of Metaprogramming Languages, ACM Computing Surveys, 52(6). Pp. 1–39. [Online]. DOI:
  9. Bissyandé, T.F. et al., (2013). Popularity, Interoperability, and Impact of Programming Languages in 100,000 Open Source Projects, Computer Software and Applications Conference. Pp. 303312. [Online]. DOI:
  10. Taboada, G.L. et al., (2013). Java in the High Performance Computing arena: Research, practice and experience.Science of Computer Programming, 78(5). Pp. 425–444. [Online]. DOI:
  11. Marii, B., Zholubak, I., (2022). Features of Development and Analysis of REST Systems. Advances in Cyber- Physical Systems, vol. 7, no. 2. Pp. 121–129. DOI: