Skip to main content

Composition Machines: Programming Self-organising Software Models for the Emergence of Sequential Program Spaces

  • Conference paper
  • First Online:
Theoretical Aspects of Software Engineering (TASE 2024)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 14777))

Included in the following conference series:

  • 461 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 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. 2.

    Examples of data types include the set of integers and the set of real numbers [21, 33]. A detailed overview of data types is out of the scope of this paper. This is because the definition of type systems depends on the application domain.

  3. 3.

    As the function \(\mu _1\) is bijective (see Definition 18), we have that \(|F|=|Q_1|\).

  4. 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. 5.

    An orbit is a finite/infinite sequence of configurations of some composition machine.

  6. 6.

    Our tool is available at https://github.com/damianarellanes/compositionmachine.

References

  1. Acerbi, L., Dennunzio, A., Formenti, E.: Conservation of some dynamical properties for operations on cellular automata. Theor. Comput. Sci. 410(38), 3685–3693 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  2. Alur, R., et al.: Syntax-guided synthesis. In: Formal Methods in Computer-Aided Design, pp. 1–8 (2013)

    Google Scholar 

  3. Arellanes, D.: Composition machines: programming self-organising software models for the emergence of sequential program spaces. Technical report. arXiv:2108.05402v1, arXiv (2021)

  4. 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

    Article  MATH  Google Scholar 

  5. Arellanes, D., Lau, K.K.: Workflow variability for autonomic IoT systems. In: International Conference on Autonomic Computing (ICAC), pp. 24–30. IEEE (2019)

    Google Scholar 

  6. Arellanes, D., Lau, K.K.: Evaluating IoT service composition mechanisms for the scalability of IoT systems. Futur. Gener. Comput. Syst. 108, 827–848 (2020)

    Article  MATH  Google Scholar 

  7. 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)

    Article  MATH  Google Scholar 

  8. Arrighi, P., Dowek, G.: Causal graph dynamics. Inf. Comput. 223, 78–93 (2013)

    Article  MathSciNet  MATH  Google Scholar 

  9. Awodey, S.: Category Theory, 2nd edn. Oxford University Press, New York (2010)

    MATH  Google Scholar 

  10. 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)

    Google Scholar 

  11. Derksen, H., Weyman, J.: An Introduction to Quiver Representations. Graduate Studies in Mathematics, vol. 184. American Mathematical Society, Providence (2017)

    MATH  Google Scholar 

  12. Doty, D.: Theory of algorithmic self-assembly. Commun. ACM 55(12), 78–88 (2012)

    Article  MATH  Google Scholar 

  13. 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)

    Google Scholar 

  14. 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)

    Article  Google Scholar 

  15. Gulwani, S., Polozov, O., Singh, R.: Program Synthesis, Foundations and Trends in Programming Languages, vol. 4. Now Publishers, Hanover (2017)

    MATH  Google Scholar 

  16. 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)

    Google Scholar 

  17. 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

    Chapter  MATH  Google Scholar 

  18. 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)

    Google Scholar 

  19. 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)

    Google Scholar 

  20. Kari, J.: Theory of cellular automata: a survey. Theor. Comput. Sci. 334(1–3), 3–33 (2005)

    Article  MathSciNet  MATH  Google Scholar 

  21. Lehmann, D.J., Smyth, M.B.: Algebraic specification of data types: a synthetic approach. Math. Syst. Theory 14(1), 97–139 (1981)

    Article  MathSciNet  MATH  Google Scholar 

  22. Mohr, F.: Automated Software and Service Composition: A Survey and Evaluating Review. SpringerBriefs in Computer Science, Springer, Cham (2016)

    Book  MATH  Google Scholar 

  23. Neumann, J.V.: Theory of Self-reproducing Automata. University of Illinois Press, Urbana (1966)

    MATH  Google Scholar 

  24. Pierce, B.C.: Basic Category Theory for Computer Scientists. Foundations of Computing, MIT Press, Cambridge (1991)

    Book  MATH  Google Scholar 

  25. Plump, D.: Term graph rewriting. In: Handbook of Graph Grammars and Computing by Graph Transformation, pp. 3–61. World Scientific (1999)

    Google Scholar 

  26. 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

    Chapter  MATH  Google Scholar 

  27. Russell, B.: The Principles of Mathematics, vol. 1. Cambridge University Press, Cambridge (1903)

    MATH  Google Scholar 

  28. 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)

    Google Scholar 

  29. Schönhage, A.: Storage modification machines. SIAM J. Comput. 9(3), 490–508 (1980)

    Article  MathSciNet  MATH  Google Scholar 

  30. 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)

    Article  MATH  Google Scholar 

  31. Simon, H.A.: Whether software engineering needs to be artificially intelligent. IEEE Trans. Softw. Eng. SE-12(7), 726–732 (1986)

    Google Scholar 

  32. 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)

    Article  MathSciNet  Google Scholar 

  33. Spivak, D.I.: Functorial data migration. Inf. Comput. 217, 31–51 (2012)

    Article  MathSciNet  MATH  Google Scholar 

  34. 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)

    Article  Google Scholar 

  35. Waldegrave, R., Stepney, S., Trefzer, M.A.: Developmental Graph Cellular Automata. MIT Press, Cambridge (2023)

    Book  MATH  Google Scholar 

  36. Wolfram, S.: A New Kind of Science, 1st edn. Wolfram Media, Champaign (2002)

    Google Scholar 

  37. 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)

    Article  MATH  Google Scholar 

  38. Yoon, Y., Lee, W., Yi, K.: Inductive program synthesis via iterative forward-backward abstract interpretation. Proc. ACM Program. Lang. 7(174), 1657–1681 (2023)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Damian Arellanes .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics