Skip to main content
Log in

Composition-Nominative Methods and Models in Program Development

  • Original Research
  • Published:
SN Computer Science Aims and scope Submit manuscript

Abstract

Software development methods take into consideration various program aspects. Among such aspects, compositionality and nominativity are the basic ones. Compositionality suggests that program meaning is a composition of meanings of its components, while nominativity suggests that components themselves are constructed with the help of relation “name–value”. Compositionality permits to describe program semantics with the formalism of program algebras. As to nominativity, it permits to represent various data structures in a unified form of nominative data. In this case, programs can be specified by program algebras over such data. This leads to composition-nominative languages used for program modeling. Such languages can be extended to program specification languages. Composition-nominative logics provide means for program reasoning. In this paper, we continue our research of program algebras and logics over nominative data. We consider various classes of nominative data with simple/complex names and simple/complex values with direct and indirect naming. We define program and specification algebras over hierarchical nominative data, specify corresponding languages and construct a program logic of Floyd–Hoare type for such programs. Constructed logics are logics over partial predicates and functions in which complex names are used. In this case, the rules of classical Floyd–Hoare logics are not sound; therefore, we use special compositions extending logic expressiveness, special consequence relations, and modified rules of Floyd–Hoare logics. Presented results give means for modeling and reasoning about program over complex data structures.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

References

  1. Kneuper R. Software processes and life cycle models. An introduction to modelling, using and managing agile, plan-driven and hybrid processes. Cham: Springer; 2018.

    Book  Google Scholar 

  2. Dahl OJ, Dijkstra EW, Hoare CAR. Structured programming (APIC studies in data processing; vol. 8). New York: Academic Press Inc; 1972.

    Google Scholar 

  3. Beck K, Beedle M, van Bennekum A, et al. Manifesto for Agile software development (2001). http://agilemanifesto.org. Accessed 22 Feb 2022.

  4. Booch B, Rumbaugh J, Jacobson I. The unified modeling language user guide. 1st ed. Upper Saddle River: Addison Wesley; 1998.

    Google Scholar 

  5. Abrial J-R. Assigning programs to meanings. Cambridge: Cambridge University Press; 1996.

    Book  MATH  Google Scholar 

  6. Spivey M. The Z notation: a reference manual, 2nd edn. Prentice Hall international series in computer science. Englewood Cliffs; 1992.

  7. The RAISE Language Group. The RAISE specification language. Prentice Hall Int.; 1992.

  8. Lamport L. Specifying systems: the TLA+ language and tools for hardware and software engineers. Upper Saddle River: Pearson Education Publ; 2002.

    Google Scholar 

  9. Hemmendinger D. Encyclopedia of computer science: syntax, semantics, and pragmatics, pp. 1737–1738. https://doi.org/10.5555/1074100.1074848. Accessed 22 Feb 2022.

  10. Bjørner D. Domain engineering: technology management, research and engineering. Tokyo: JAIST Press; 2009.

    Google Scholar 

  11. Nikitchenko N. A composition-nominative approach to program semantics. Technical report, IT-TR 1998-020, Technical University of Denmark. 1998.

  12. Scott D, Steachy C. Toward a mathematical semantics for computer languages Oxford Programming Research Group technical monograph. PRG-6. 1971.

  13. Werning M, Hinzen W, Machery E, editors. The Oxford handbook of compositionality. Oxford: Oxford University Press; 2012.

    Google Scholar 

  14. Raymond Turner R. Computational artifacts. Towards a philosophy of computer science. Berlin: Springer; 2018.

    Book  MATH  Google Scholar 

  15. Zhang W, Sun Y, Oliveira B. Compositional programming. ACM Trans Program Lang Syst. 2021;43(3):61. https://doi.org/10.1145/3460228.

    Article  Google Scholar 

  16. Bove A, Krauss A, Sozeau M. Partiality and recursion in interactive theorem provers—an overview. Mathematical structures in computer science. Cambridge University Press (CUP), ffhal-00691459f; 2012.

  17. Nikitchenko M, Tymofieiev V. Composition-nominative logics in rigorous development of software systems. UNISCON. 2012;2012:140–51.

    MATH  Google Scholar 

  18. Nielson HR, Nielson F. Semantics with applications: a formal introduction. New York: Wiley; 1992.

    MATH  Google Scholar 

  19. Winskel G. The formal semantics of programming languages. Cambridge: MIT Press; 1993.

    Book  MATH  Google Scholar 

  20. Nikitchenko M, Shkilniak S. Applied logic. Кyiv: VPC Кyivskyi Universytet, in Ukrainian; 2013.

    MATH  Google Scholar 

  21. Kleene S. Introductions to metamathematics. Amsterdam: North-Holland; New York, Toronto: Van Nostrand; 1952.

  22. Kryvolap A, Nikitchenko M, Schreiner W. Extending Floyd–Hoare logic for partial pre- and postconditions. In: Communications in computer and information science, vol. 412. Cham: Springer; 2013. p. 355–78.

  23. Nikitchenko M. Composition-nominative aspects of address programming. Cybern Syst Anal. 2009;45(6):864–74.

    Article  MathSciNet  MATH  Google Scholar 

  24. Ivanov I, Nikitchenko M, Kryvolap A, Kornilowicz A. Simple-named complex-valued nominative data—definition and basic operations. Formalize Math. 2017;25(3):205–16. https://doi.org/10.1515/forma-2017-0020.

    Article  MATH  Google Scholar 

  25. Nikitchenko M, Shkilniak O, Shkilniak S, Mamedov T. Completeness of the first-order logic of partial quasiary predicates with the complement composition. Comput Sci J Moldova. 2019;80(2):162–87.

    MathSciNet  MATH  Google Scholar 

  26. Hoare C. An axiomatic basis for computer programming. Commun ACM. 1969;12(10):576–80.

    Article  MATH  Google Scholar 

  27. Apt K. Ten years of Hoare’s logic: a survey—part I. ACM Trans Program Lang Syst. 1981;3(4):431–83.

    Article  MATH  Google Scholar 

  28. Blass A, Gurevich Y. The underlying logic of Hoare logic, current trends in theoretical computer science. In: Entering the 21st century. World Scientific; 2001. p. 409–36.

  29. Grabowski A, Kornilowicz A, Naumowicz A. Four decades of Mizar. J Autom Reason. 2015;55(3):191–8.

    Article  MathSciNet  MATH  Google Scholar 

  30. Ivanov I, Nikitchenko M, Kornilowicz A. Implementation of the composition-nominative approach to program formalization in Mizar. Comput Sci J Moldova. 2018;26(1):59–76.

    MathSciNet  MATH  Google Scholar 

  31. Ivanov I, Nikitchenko M, Kryvolap A, Kornilowicz A. Simple-named complex-valued nominative data—definition and basic operations. Formaliz Math. 2017;25:205–16.

    Article  MATH  Google Scholar 

  32. Kornilowicz A, Ivanov I, Nikitchenko M. Kleene algebra of partial predicates. Formaliz Math. 2018;26(1):11–20.

    Article  MATH  Google Scholar 

  33. Ivanov I, Kornilowicz A, Nikitchenko M. On algebras of algorithms and specifications over uninterpreted data. Formaliz Math. 2018;26(2):141–7.

    Article  MATH  Google Scholar 

  34. Ivanov I, Kornilowicz A, Nikitchenko M. On an algorithmic algebra over simple-named complex-valued nominative data. Formaliz Math. 2018;26(2):149–58.

    Article  MATH  Google Scholar 

  35. Ivanov I, Kornilowicz A, Nikitchenko M. An inference system of an extension of Floyd–Hoare logic for partial predicates. Formaliz Math. 2018;26(2):159–64.

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mykola Nikitchenko.

Ethics declarations

Conflict of interest

The author declares that he has no conflict of interest.

Ethical approval

This article does not contain any studies with human participants performed by any of the authors.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

This article is part of the topical collection “Models and Methods in ICT for Research and Applications” guest edited by Vadim Ermolayev, Stephen W Liddle, Heinrich C Mayr, Elisabeth Métais and Jolita Ralyté.

Rights and permissions

Springer Nature or its licensor holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Nikitchenko, M. Composition-Nominative Methods and Models in Program Development. SN COMPUT. SCI. 3, 507 (2022). https://doi.org/10.1007/s42979-022-01335-2

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s42979-022-01335-2

Keywords

Navigation