Skip to main content

Functional Algorithm Design

  • Invited Lectures
  • Conference paper
  • First Online:
Mathematics of Program Construction (MPC 1995)

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

Included in the following conference series:

Abstract

For an adequate account of a functional approach to Algorithm Design we need to find new translations of classical algorithms and data structures, translations that do not compromise efficiency. For an adequate formal account of a functional approach to the specification and design of algorithms we need to include relations in the underlying theory. These and other points are illustrated in the context of sorting.

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. R.C. Backhouse, P.J de Bruin, G. Malcolm, E. Voermans, and J.C.S.P. van der Woude. Relational Catamorphisms. In B. Möller, editor Proceedings of the IFIP TC2/WG2.1 Working Conference on Constructing Programs from Specifications, 287–318, 1991.

    Google Scholar 

  2. R.S. Bird, J. Gibbons, G. Jones. Formal derivation of a pattern matching algorithm. Science of Computer Programming, 12, 93–104, 1989.

    Google Scholar 

  3. Richard Bird and Philip Wadler. Introduction to Functional Programming Prentice Hall International, 1988.

    Google Scholar 

  4. Richard Bird and Oege de Moor. The Algebra of Programming. To be published by Prentice Hall International, 1996.

    Google Scholar 

  5. Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest. Introduction to Algorithms. MIT Press, Cambridge, Mass. USA, 1990.

    Google Scholar 

  6. John Darlington. A synthesis of several sorting algorithms. Acta Informatica 11, 1–30, 1978.

    Google Scholar 

  7. P.J. Freyd and A. Ščedrov. Categories, Allegories, volume 39 of Mathematical Library. North-Holland, 1990.

    Google Scholar 

  8. A.M. Haeberer and P.A.S. Veloso. Partial relations for program development. in B. Möller (ed.) Constructing Programs from Specifications. Proc. IFIP TC2/WG2.1 Conference, Pacific Grove, CA, USA (1991), North-Holland, Amsterdam (1991), 373–397.

    Google Scholar 

  9. Paul Hoogendijk and Oege de Moor. Membership of datatypes. Unpublished Draft, 1993.

    Google Scholar 

  10. Rob Hoogerwoord. The design of functional programs: a calculational approach. Ph.D thesis, University of Eindhoven 1989.

    Google Scholar 

  11. Geraint Jones and Mary Sheeran. Circuit design in Ruby, in Jørgen Staunstrup (ed.), Formal methods for VLSI design, North-Holland, 1990. pp. 13–70.

    Google Scholar 

  12. David King and John Launchbury. Structuring Depth-First Search Algorithms in Haskell. Proc. ACM Principles of Programming Languages, San Francisco, 1995.

    Google Scholar 

  13. John Launchbury and Simon Peyton Jones. State in Haskell. University of Glasgow, preprint, 1995.

    Google Scholar 

  14. Grant Malcolm. Homomorphisms and promotability. In J. Snepscheut, editor 1989 Groningen Mathematics of Program Construction Conference. Springer-Verlag LNCS 375, 335–347, 1989.

    Google Scholar 

  15. Grant Malcolm. Algebraic Types and Program Transformation. Ph.D thesis, University of Groningen, The Netherlands, 1990.

    Google Scholar 

  16. Erik Meijer, Maarten Fokkinga, and Ross Paterson. Functional programming with bananas, lenses, envelopes and barbed wire. in John Hughes, (ed.) Proceedings of the 1991 ACM Conference on Functional Programming and Computer Architecture. Springer-Verlag LNCS 523, 1991.

    Google Scholar 

  17. B. Möller. Relations as a program development language. in B. Möller (ed.) Constructing Programs from Specifications. Proc. IFIP TC2/WG2.1 Conference, Pacific Grove, CA, USA (1991), North-Holland, Amsterdam (1991), 373–397.

    Google Scholar 

  18. B. Möller. Algebraic calculation of graph and sorting algorithms. In D. Bjorner, M. Broy, I.V. Pottosin (eds) Formal methods in Programming and their Applications. Springer-Verlag LNCS 735, 394–413, 1993.

    Google Scholar 

  19. O. de Moor. Categories, relations and dynamic programming. D.Phil. thesis. Technical Monograph PRG-98, Computing Laboratory, Oxford, 1992. Also in Mathematical Structures in Computer Science, vol 4 (1), 1994, 33–70.

    Google Scholar 

  20. Gunther Schmidt and Thomas Ströhlein. Relations and Graphs. EATCS Monographs on Theoretical Computer Scince. Springer-Verlag, 1991.

    Google Scholar 

  21. Robert E. Tarjan. Efficiency of a good but not linear set union algorithm. Journal of the ACM. vol 22 (2), 1975, 215–225.

    Google Scholar 

  22. Robert E. Tarjan and Jan van Leeuwen. Worst-case analysis of set union algorithms. Journal of the ACM. vol 31 (2), 1984, 245–281.

    Google Scholar 

  23. J.W.J. Williams. Algorithm 232 (heapsort). Communications of the ACM, vol 7, 1964, 347–348.

    Google Scholar 

  24. Philip L. Wadler Listlessness is better than Laziness. Ph.D. thesis, Carnegie-Mellon University, USA, 1984.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Bernhard Möller

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bird, R.S. (1995). Functional Algorithm Design. In: Möller, B. (eds) Mathematics of Program Construction. MPC 1995. Lecture Notes in Computer Science, vol 947. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60117-1_2

Download citation

  • DOI: https://doi.org/10.1007/3-540-60117-1_2

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60117-3

  • Online ISBN: 978-3-540-49445-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics