Abstract
We are entering a new era in which software systems are becoming more and more complex and larger. So, the composition of such systems is becoming infeasible by manual means. To address this challenge, self-organising software models represent a promising direction since they allow the (bottom-up) emergence of complex computational structures from simple rules. In this paper, we propose an abstract machine, called the composition machine, which allows the definition and the execution of such models. Unlike typical abstract machines, our proposal does not compute individual programs but enables the emergence of multiple programs at once. We particularly present the machine’s semantics and demonstrate its operation with well-known rules from the realm of Boolean logic and elementary cellular automata.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
The word computon derives from the Latin root for computation (computus) and the Greek suffix -on. In Physics, this suffix is traditionally used to designate subatomic particle names.
- 2.
- 3.
As the function \(\mu _1\) is bijective (see Definition 18), we have that \(|F|=|Q_1|\).
- 4.
\(S^{Q_1}\) is the set of all the possible configurations in a given machine, i.e., the set of all the functions from \(Q_1\) to S.
- 5.
An orbit is a finite/infinite sequence of configurations of some composition machine.
- 6.
Our tool is available at https://github.com/damianarellanes/compositionmachine.
References
Acerbi, L., Dennunzio, A., Formenti, E.: Conservation of some dynamical properties for operations on cellular automata. Theor. Comput. Sci. 410(38), 3685–3693 (2009)
Alur, R., et al.: Syntax-guided synthesis. In: Formal Methods in Computer-Aided Design, pp. 1–8 (2013)
Arellanes, D.: Composition machines: programming self-organising software models for the emergence of sequential program spaces. Technical report. arXiv:2108.05402v1, arXiv (2021)
Arellanes, D.: Self-organizing software models for the Internet of Things: complex software structures that emerge without a central controller. IEEE Syst. Man Cybern. Mag. 7(3), 4–9 (2021). https://doi.org/10.1109/MSMC.2021.3062822
Arellanes, D., Lau, K.K.: Workflow variability for autonomic IoT systems. In: International Conference on Autonomic Computing (ICAC), pp. 24–30. IEEE (2019)
Arellanes, D., Lau, K.K.: Evaluating IoT service composition mechanisms for the scalability of IoT systems. Futur. Gener. Comput. Syst. 108, 827–848 (2020)
Arellanes, D., Lau, K.K., Sakellariou, R.: Decentralized data flows for the functional scalability of service-oriented IoT systems. Comput. J. 66(6), 1477–1506 (2023)
Arrighi, P., Dowek, G.: Causal graph dynamics. Inf. Comput. 223, 78–93 (2013)
Awodey, S.: Category Theory, 2nd edn. Oxford University Press, New York (2010)
Bruneton, E., Coupaye, T., Leclercq, M., Quéma, V., Stefani, J.B.: The FRACTAL component model and its support in Java. Softw. Pract. Experience 36(11–12), 1257–1284 (2006)
Derksen, H., Weyman, J.: An Introduction to Quiver Representations. Graduate Studies in Mathematics, vol. 184. American Mathematical Society, Providence (2017)
Doty, D.: Theory of algorithmic self-assembly. Commun. ACM 55(12), 78–88 (2012)
Filho, R.R., Porter, B.: Defining emergent software using continuous self-assembly, perception, and learning. ACM Trans. Auton. Adaptive Syst. 12(3), 16:1–16:25 (2017)
Floch, J., Hallsteinsen, S., Stav, E., Eliassen, F., Lund, K., Gjorven, E.: Using architecture models for runtime adaptability. IEEE Softw. 23(2), 62–70 (2006)
Gulwani, S., Polozov, O., Singh, R.: Program Synthesis, Foundations and Trends in Programming Languages, vol. 4. Now Publishers, Hanover (2017)
Gurevich, Y.: On Kolmogorov machines and related issues. In: Current Trends in Theoretical Computer Science. World Scientific Series in Computer Science, vol. 40, pp. 225–234. World Scientific (1993)
Hirsch, D., Kramer, J., Magee, J., Uchitel, S.: Modes for software architectures. In: Gruhn, V., Oquendo, F. (eds.) EWSA 2006. LNCS, vol. 4344, pp. 113–126. Springer, Heidelberg (2006). https://doi.org/10.1007/11966104_9
Iovino, M., Styrud, J., Falco, P., Smith, C.: Learning behavior trees with genetic programming in unpredictable environments. In: IEEE International Conference on Robotics and Automation (ICRA), pp. 4591–4597 (2021)
Jha, S., Gulwani, S., Seshia, S.A., Tiwari, A.: Oracle-guided component-based program synthesis. In: ACM/IEEE International Conference on Software Engineering (ICSE), pp. 215–224. ACM (2010)
Kari, J.: Theory of cellular automata: a survey. Theor. Comput. Sci. 334(1–3), 3–33 (2005)
Lehmann, D.J., Smyth, M.B.: Algebraic specification of data types: a synthetic approach. Math. Syst. Theory 14(1), 97–139 (1981)
Mohr, F.: Automated Software and Service Composition: A Survey and Evaluating Review. SpringerBriefs in Computer Science, Springer, Cham (2016)
Neumann, J.V.: Theory of Self-reproducing Automata. University of Illinois Press, Urbana (1966)
Pierce, B.C.: Basic Category Theory for Computer Scientists. Foundations of Computing, MIT Press, Cambridge (1991)
Plump, D.: Term graph rewriting. In: Handbook of Graph Grammars and Computing by Graph Transformation, pp. 3–61. World Scientific (1999)
Rao, J., Su, X.: A survey of automated web service composition methods. In: Cardoso, J., Sheth, A. (eds.) SWSWPC 2004. LNCS, vol. 3387, pp. 43–54. Springer, Heidelberg (2005). https://doi.org/10.1007/978-3-540-30581-1_5
Russell, B.: The Principles of Mathematics, vol. 1. Cambridge University Press, Cambridge (1903)
Sayama, H.: Generative network automata: a generalized framework for modeling complex dynamical systems with autonomously varying topologies. In: IEEE Symposium on Artificial Life, pp. 214–221 (2007)
Schönhage, A.: Storage modification machines. SIAM J. Comput. 9(3), 490–508 (1980)
da Silva, A.S., Ma, H., Mei, Y., Zhang, M.: A survey of evolutionary computation for web service composition: a technical perspective. IEEE Trans. Emerg. Top. Comput. Intell. 4(4), 538–554 (2020)
Simon, H.A.: Whether software engineering needs to be artificially intelligent. IEEE Trans. Softw. Eng. SE-12(7), 726–732 (1986)
Smith, D.M.D., Onnela, J.P., Lee, C.F., Fricker, M.D., Johnson, N.F.: Network automata: coupling structure and function in dynamic networks. Adv. Complex Syst. 14(03), 317–339 (2011)
Spivak, D.I.: Functorial data migration. Inf. Comput. 217, 31–51 (2012)
Töpfer, M., Abdullah, M., Bureš, T., Hnětynka, P., Kruliš, M.: Machine-learning abstractions for component-based self-optimizing systems. Int. J. Softw. Tools Technol. Transfer 25(5), 717–731 (2023)
Waldegrave, R., Stepney, S., Trefzer, M.A.: Developmental Graph Cellular Automata. MIT Press, Cambridge (2023)
Wolfram, S.: A New Kind of Science, 1st edn. Wolfram Media, Champaign (2002)
Woods, D.: Intrinsic universality and the computational power of self-assembly. Philos. Trans. R. Soc. A: Math. Phys. Eng. Sci. 373(2046), 1–13 (2015)
Yoon, Y., Lee, W., Yi, K.: Inductive program synthesis via iterative forward-backward abstract interpretation. Proc. ACM Program. Lang. 7(174), 1657–1681 (2023)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Arellanes, D. (2024). Composition Machines: Programming Self-organising Software Models for the Emergence of Sequential Program Spaces. In: Chin, WN., Xu, Z. (eds) Theoretical Aspects of Software Engineering. TASE 2024. Lecture Notes in Computer Science, vol 14777. Springer, Cham. https://doi.org/10.1007/978-3-031-64626-3_2
Download citation
DOI: https://doi.org/10.1007/978-3-031-64626-3_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-64625-6
Online ISBN: 978-3-031-64626-3
eBook Packages: Computer ScienceComputer Science (R0)