Skip to main content
Log in

Derivation of algorithms by introduction of generation functions

  • Regular Papers
  • Published:
New Generation Computing Aims and scope Submit manuscript

Abstract

A specification is a mathematical description of the intent we want a program to behave, while an algorithm is a formal description of a program that satisfies the specification. When we want to write an algorithm by defining data domains and functions over these domains, it is common to use recursion equations for function definitions. However, recursion equations lack imaginability such as existential quantifiers in predicate calculus. In this paper we show how executable algorithms are derived from specifications written in ordinary set-theoretic formulas, and illustrate it by deriving several kinds of sorting algorithms as well as a graph algorithm.

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.

Similar content being viewed by others

References

  1. Bird, R. S., “The Promotion and Accumulation Strategies in Transformational Programming,”ACM Trans. Prog. Lang. Syst., 6, 2, pp. 487–504, 1984.

    Article  MATH  MathSciNet  Google Scholar 

  2. Bird, R. S.,Introduction to Functional Programming, Prentice Hall, 1988.

  3. Bird, R. S., “An Introduction to the Theory of Lists,” inLogic of Programming and Calculi of Discrete Design (M. Broy, ed.),NATO ASI Series F: Vol. 36, Springer-Verlag, 1987.

  4. Darlington, J., “A Synthesis of Several Sorting Algorithms,”Acta Informatica, 11, 1, pp. 1–30, 1978.

    Article  MATH  MathSciNet  Google Scholar 

  5. Drake, F. R.,Set Theory, North-Holland, 1974.

  6. Hudak, P. et al., “Report on the Programming Language Haskell (Version 1.1),”ACM SIGPLAN Notices,27,5, 1992.

  7. Manna, Z.,The Logical Basis for Computer Programming, Addison-Wesley, 1985.

  8. Nogi, K., “Derivation of Algorithms Based on Structural Induction,”Computer Software, 7, 4 pp. 39–59, 1990. [in Japanese]

    Google Scholar 

  9. Turner, D. A., “Functional Programs as Executable Specifications,” inMathematical Logic and Programming Languages (C. A. R. Hoare and J. C. Shepherdson, eds.), Prentice Hall, 1985.

  10. Xu, L., “Derivation of Algorithms by Introducing Generation Functions,”Master’s thesis, Information Engineering Course, University of Tokyo, Japan, 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

Liangwei Xu: He is currently a graduate student of Doctor Course of Division of Engineering, The University of Tokyo. He received the B. E. degree from Shanghai Jiao Tong University (P. R. China) in 1982 and the M. E. degree from The University of Tokyo in 1992. His research interests are computational model, program transformation and derivation methodology.

Hideya Iwasaki, Dr. Eng.: He is an Associate Professor of Educational Computer Center, The University of Tokyo. He received the M. E. degree in 1985, the Dr. Eng. degree in 1988 from The University of Tokyo. He has been working on list processing languages, functional languages, and parallel processing.

Masato Takeichi, Dr. Eng.: He is a Professor of Department of Mathematical Engineering, Faculty of Engineering, The University of Tokyo. His research interests are functional programming, language implementation and constructive algorithmics.

About this article

Cite this article

Xu, L., Iwasaki, H. & Takeichi, M. Derivation of algorithms by introduction of generation functions. New Gener Comput 13, 75–98 (1994). https://doi.org/10.1007/BF03038309

Download citation

  • Received:

  • Revised:

  • Issue Date:

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

Keywords

Navigation