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.
Preview
Unable to display preview. Download preview PDF.
References
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.
R.S. Bird, J. Gibbons, G. Jones. Formal derivation of a pattern matching algorithm. Science of Computer Programming, 12, 93–104, 1989.
Richard Bird and Philip Wadler. Introduction to Functional Programming Prentice Hall International, 1988.
Richard Bird and Oege de Moor. The Algebra of Programming. To be published by Prentice Hall International, 1996.
Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest. Introduction to Algorithms. MIT Press, Cambridge, Mass. USA, 1990.
John Darlington. A synthesis of several sorting algorithms. Acta Informatica 11, 1–30, 1978.
P.J. Freyd and A. Ščedrov. Categories, Allegories, volume 39 of Mathematical Library. North-Holland, 1990.
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.
Paul Hoogendijk and Oege de Moor. Membership of datatypes. Unpublished Draft, 1993.
Rob Hoogerwoord. The design of functional programs: a calculational approach. Ph.D thesis, University of Eindhoven 1989.
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.
David King and John Launchbury. Structuring Depth-First Search Algorithms in Haskell. Proc. ACM Principles of Programming Languages, San Francisco, 1995.
John Launchbury and Simon Peyton Jones. State in Haskell. University of Glasgow, preprint, 1995.
Grant Malcolm. Homomorphisms and promotability. In J. Snepscheut, editor 1989 Groningen Mathematics of Program Construction Conference. Springer-Verlag LNCS 375, 335–347, 1989.
Grant Malcolm. Algebraic Types and Program Transformation. Ph.D thesis, University of Groningen, The Netherlands, 1990.
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.
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.
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.
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.
Gunther Schmidt and Thomas Ströhlein. Relations and Graphs. EATCS Monographs on Theoretical Computer Scince. Springer-Verlag, 1991.
Robert E. Tarjan. Efficiency of a good but not linear set union algorithm. Journal of the ACM. vol 22 (2), 1975, 215–225.
Robert E. Tarjan and Jan van Leeuwen. Worst-case analysis of set union algorithms. Journal of the ACM. vol 31 (2), 1984, 245–281.
J.W.J. Williams. Algorithm 232 (heapsort). Communications of the ACM, vol 7, 1964, 347–348.
Philip L. Wadler Listlessness is better than Laziness. Ph.D. thesis, Carnegie-Mellon University, USA, 1984.
Author information
Authors and Affiliations
Editor information
Rights 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