Skip to main content

Automatical synthesis of programs with recursions

  • Conference paper
  • First Online:
Formal Methods in Programming and Their Applications

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

  • 135 Accesses

Abstract

A method of automatic creation of some programs by nonprocedural specifications in a simple logical language is proposed. The language is similar to the data description subsets of some programming. languages (such as pascal, Modula-2, Ada) and is the language without lower level (i.e. programs of all elementary actions is to be contained in the programming system libraries). Programs synthesized by a computer using this method can contain loops and recursions.

A notions of the DEPTH OF CONSTRUCTIONS and the BRANCHING INDEX of the programs is introduced. A complete synthesis procedure exists for creating programs with bounded depth of constructions. The time of the procedure execution is polynomial of the input length when the depth of branching in the created programs and the numbers of arguments of predicates and functions used in the task specification are bounded by constants.

The method of the deductive program synthesis is used. A modified first order predicate calculus is used as the theory required for the method.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Arhangelsky D.A., Taitslin M.A.: A logic for data description. Lecture Notes in Computer Science, 363, (1989), 2–11.

    Google Scholar 

  2. Archangelsky D.A., Taitslin M.A.: A modal linear logic. Lect. Notes in Comp. Sci., (1992).

    Google Scholar 

  3. Constable R.L.: Constructive mathematics and automatic program writers. Information Processing 71, North Holland, (1972), 1, 229–233.

    Google Scholar 

  4. Constable R.L.: Constructive mathematics as a programming logic I: some principles of theory. International Foundations of Computation Theory Conference, Lecture notes in Computer Science, bf 158, (1983), 64–77.

    Google Scholar 

  5. Constable R.L.: Programs and types. IEEE Symp. Found. Computer science, (1980), 112–128.

    Google Scholar 

  6. Galmiche D.: Constructive system for automatic program synthesis. Ifornatika 88, Nice, France, (1988).

    Google Scholar 

  7. Galmiche D.: The power of constructive framework for programming synthesis. COLOG-88, Papers presented at the International Comference in Computer Logic, Part I, Tallinn, December 12–16, (1988), 165–176.

    Google Scholar 

  8. Girard J.-Y.: Linear Logic. Theoretical computer science. (1987). No 50. 1–102.

    Google Scholar 

  9. Goad C.A. Proofs as descriptions of computation. Lecture Notes in Computer Science 87, (1980), 39–52.

    Google Scholar 

  10. Goedel K.: Uber eine bisher noch nicht benutze Erweiteung des finiten Standpunktes. Dialectica 12, (1958), No 3/4, 280–287.

    Google Scholar 

  11. Goto S.: Program synthesis through Godel's interpretation. Proc. International Conference on Mathematical Studies of Information Processing, (1978), Kyoto, 287–306.

    Google Scholar 

  12. Hayashi S.: Extracting Lisp programs from constructive proofs. A formal theory of constructive mathematics based on Lisp. Publ. RIMS, Kyoto Univ., 19 (1983), 169–191.

    Google Scholar 

  13. Hayashi S.: PX — a system extracting programs from proofs. IFIP Conference of Formal Description of Programming Concepts, (1986).

    Google Scholar 

  14. Heyting: Matematische Grundlagenforschung, Intuitionismus, Beweisstheorie. Ergebnisse der Math. etc. III, 4, Berlin, (1934).

    Google Scholar 

  15. Howard W.A.: The formulae-as-types notion of construction. To H.B.Curry: Essays on Combinatory Logic, — Calculus and Formalism, Academic Press, (1980), 479–490.

    Google Scholar 

  16. Kleene S.: Introduction to Metamathematics. Princeton — Toronto, 1952.

    Google Scholar 

  17. Kolmogorov. Zur Deutung der Intuitionistischen Logik. Math Zeitschrift, (1932), 25, 58–65.

    Google Scholar 

  18. Kreisel G.: Some uses of proof theory for finding computer programs. Colloc. Intern. Log., Clermont-Ferrant, 1975, p.151.

    Google Scholar 

  19. Krivine J.L., Parigot M.: Programming with Proofs. 6th Symposium on Computation Theory, Wendisch-Reitz, November 1987.

    Google Scholar 

  20. Manna Z., Waldinger R.: A deductive approach to program synthesis. Proc. 6-th Intern. Conf. on AI, Tokyo, (1979), p.542.

    Google Scholar 

  21. Manna Z., Waldinger R.: Towards authomatic program synthesis. CACM 3, (1971), 151–165.

    Google Scholar 

  22. Martin-Loef P.: Constructive mathematics and computer programming. 6th Congress for Logic, Methodology and Phylosophy of Science, North Holland, (1982), 153–175.

    Google Scholar 

  23. Matrosov V.M., Oparin G.A., Feoktistov D.G., Zhuravlev A.E., Kiselev S.I.: A software tool and the technology of its application (SATURN-technology) for development and explotation of applied intelligent system for mathimatical modeliing and investigation of control system of complex objects notion. IMASS/IFAC International Workshop ”Methods and software for automatic control system” (Irkutsk, USSR, September, 3–5, 1991). Irkutsk, Computing Centre, (1991), 92–93.

    Google Scholar 

  24. Nepejvoda N.N.: A proof theoretical comparison of program synthesis and program verification. 6-th Intern. Congr. of Logic, Methodology and Philosophy of Science, Hannover, (1979)

    Google Scholar 

  25. Nepejvoda N.N.: The connection between the proof theory and computer programming. 6-th Intern. Congr. of Logic, Methodology and Philosophy of Science, Hannover, (1979), 1, p.7–11.

    Google Scholar 

  26. Nepejvoda N.N. The logical approach to programming. Lect. Notes Comp. Sci., (1981), 118, 261–290.

    Google Scholar 

  27. Nordstrom B.: Programming in constructive set theory: some examples. ACM Conference of Functional Programming Languasges and Computer Architecture, (1984), 141–154.

    Google Scholar 

  28. Parigot M.: Programming with Proofs: a second order type theory. ESOP'88, Nancy, March (1988).

    Google Scholar 

  29. Sato M.: Towards a mathematical theory of program synthesis. Proc. IJCAI 6, (1979), 757–762.

    Google Scholar 

  30. Tyugu E.: A programming system with automatic program synthesis. Lecture Notes in Computer Science 47: Methods of Algorithmic Language Impleventation, Berlin, (1977), 251–267.

    Google Scholar 

  31. Tyugu E.: Using a problem Solver in CAD. Artificial Intelligence and Pattern Recognition in CAD, North-Holland, (1978), 197–210.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Dines Bjørner Manfred Broy Igor V. Pottosin

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Beltiukov, A.P. (1993). Automatical synthesis of programs with recursions. In: Bjørner, D., Broy, M., Pottosin, I.V. (eds) Formal Methods in Programming and Their Applications. Lecture Notes in Computer Science, vol 735. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0039723

Download citation

  • DOI: https://doi.org/10.1007/BFb0039723

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57316-6

  • Online ISBN: 978-3-540-48056-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics