University of Oxford Logo University of OxfordDepartment of Computer Science - Home

Algebra of Programming: Publications

By dateBy titleBy typeBibtex

[1]

A Calculus of Functions for Program Derivation

Richard S. Bird

In David A. Turner, editor, Research Topics in Functional Programming. Addison−Wesley. 1990.

Also available as Technical Monograph PRG−64‚ from the Programming Research Group‚ Oxford University

[2]

A Formal Development of an Efficient Supercombinator Compiler

R. S. Bird

In Science of Computer Programming. Vol. 8. Pages 113–137. 1987.

[3]

A Functional Derivation of the Warren Abstract Machine

Maciej Pirog and Jeremy Gibbons

2011.

Submitted for publication

[4]

A Generic Programming Extension for Haskell

Ralf Hinze

In Erik Meijer, editor, Proceedings of the 3rd Haskell Workshop‚ Paris‚ France. September, 1999.

The proceedings appeared as a technical report of Universiteit Utrecht‚ UU−CS−1999−28

[5]

A New Approach to Generic Functional Programming

Ralf Hinze

No. IAI−TR−99−9. Institut für Informatik III‚ Universität Bonn. July, 1999.

[6]

A New View of Binary Trees

Jeremy Gibbons

Master's Thesis , type=Transferral dissertation Transferral dissertationType. Programming Research Group‚ Oxford University. 1988.

Abstract appears in the Bulletin of the EATCS‚ number 39‚ p. 214.

[7]

A Note on Definition by Cases

Richard Bird

In Zeitschrift für mathematische Logik und Grundlagen der Mathematik. Vol. 19. Pages 207–208. 1973.

[8]

A Pointless Derivation of Radixsort

Jeremy Gibbons

In Journal of Functional Programming. Vol. 9. No. 3. Pages 339–346. 1999.

[9]

A Program to Solve Sudoku

Richard S. Bird

In Journal of Functional Programming. Vol. 16. No. 6. Pages 671−679. 2006.

[10]

A Simple Implementation Technique for Priority Search Queues

Ralf Hinze

No. UU−CS−2001−09. Universiteit Utrecht. March, 2001.

[11]

Addendum to “The Promotion and Accumulation Strategies in Transformational Programming”

Richard S. Bird

In ACM Transactions on Programming Languages and Systems. Vol. 7. No. 3. Pages 490–492. July, 1985.

[12]

Against the Grain: Linear−Time Breadth−First Tree Algorithms

Jeremy Gibbons and Geraint Jones

1998.

Oxford Brookes University and Oxford University Computing Laboratory

[13]

Algebraic Identities for Program Calculation

Richard S. Bird

In Computer Journal. Vol. 32. No. 2. Pages 122–126. April, 1989.

[14]

Algebraic Methods for Optimization Problems

Richard Bird‚ Jeremy Gibbons and Shin Cheng Mu

In Roland Backhouse‚ Roy Crole and Jeremy Gibbons, editors, Algebraic and Coalgebraic Methods in the Mathematics of Program Construction. Vol. 2297 of Lecture Notes in Computer Science. Pages 281–307. Springer−Verlag. 2002.

[15]

Algebraic Methods for Optimization Problems

Richard Bird‚ Jeremy Gibbons and Shin Cheng Mu

In Roland Backhouse‚ Roy Crole and Jeremy Gibbons, editors, Algebraic and Coalgebraic Methods in the Mathematics of Program Construction. Vol. 2297 of Lecture Notes in Computer Science. Pages 281–307. Springer−Verlag. 2002.

[16]

Algebraic and Coalgebraic Methods in the Mathematics of Program Construction

Roland Backhouse‚ Roy Crole and Jeremy Gibbons, editors

Vol. 2297 of Lecture Notes in Computer Science. Springer−Verlag. 2002.

[17]

Algebras for Tree Algorithms

Jeremy Gibbons

PhD Thesis , type={D}.\,{Phil}.\ thesis D.Phil. thesisType. Programming Research Group‚ Oxford University. 1991.

Available as Technical Monograph PRG−94. ISBN 0−902928−72−4

[18]

Allegories as a Basis for Algorithmics

Richard S. Bird

In Eugenio Moggi and Guiseppe Rosolini, editors, LNCS 1290: Category Theory and Computer Science. Pages 34–46. Springer−Verlag. September, 1997.

[19]

An Initial−Algebra Approach to Directed Acyclic Graphs

Jeremy Gibbons

In Bernhard Möller, editor, Mathematics of Program Construction. Vol. 947 of Lecture Notes in Computer Science. Pages 282–303. Springer−Verlag. 1995.

[20]

An Introduction to Functional Programming

Richard S. Bird and Philip L. Wadler

Prentice−Hall. 1988.

[21]

An Introduction to the Bird−Meertens Formalism

Jeremy Gibbons

In Steve Reeves, editor, Proceedings of the First New Zealand Formal Program Development Colloquium. Pages 1–12. Hamilton. November, 1994.

[22]

An Introduction to the Theory of Lists

Richard S. Bird

In M. Broy, editor, Logic of Programming and Calculi of Discrete Design. Pages 3–42. Springer−Verlag. 1987.

NATO ASI Series F Volume 36. Also available as Technical Monograph PRG−56‚ from the Programming Research Group‚ Oxford University

[23]

An Unbounded Spigot Algorithm for the Digits of π

Jeremy Gibbons

In American Mathematical Monthly. Vol. 113. No. 4. Pages 318−328. 2006.

[24]

Arithmetic Coding with Folds and Unfolds

Richard Bird and Jeremy Gibbons

In Johan Jeuring and Simon Peyton Jones, editors, Advanced Functional Programming 4. Vol. 2638 of Lecture Notes in Computer Science. Pages 1−26. Springer−Verlag. 2003.

[25]

Arithmetic Coding with Folds and Unfolds

Richard Bird and Jeremy Gibbons

In Johan Jeuring and Simon Peyton Jones, editors, Advanced Functional Programming 4. Vol. 2638 of Lecture Notes in Computer Science. Pages 1−26. Springer−Verlag. 2003.

Code available at http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/arith.zip

[26]

Bridging the Algorithm Gap: A Linear−Time Functional Program for Paragraph Formatting

Oege de Moor and Jeremy Gibbons

In Science of Computer Programming. Vol. 35. No. 1. 1999.

[27]

Calculating Functional Programs

Jeremy Gibbons

In Roland Backhouse‚ Roy Crole and Jeremy Gibbons, editors, Algebraic and Coalgebraic Methods in the Mathematics of Program Construction. Vol. 2297 of Lecture Notes in Computer Science. Pages 148–203. Springer−Verlag. 2002.

[28]

Calculating Functional Programs

Jeremy Gibbons

In Keiichi Nakata, editor, Proceedings of ISRG/SERG Research Colloquium. School of Computing and Mathematical Sciences‚ Oxford Brookes University. November, 1997.

Technical Report CMS−TR−98−01

[29]

Church numerals‚ twice!

Ralf Hinze

No. IAI−TR−2002−3. Institut für Informatik III‚ Universität Bonn. February, 2002.

[30]

Combining Generics and Dynamics

Peter Achten and Ralf Hinze

No. NIII−R0206. Nijmegen Institute for Computing and Information Sciences‚ University of Nijmegen. July, 2002.

[31]

Comparing Approaches to Generic Programming in Haskell

Ralf Hinze‚ Johan Jeuring and Andres Löh

In Roland Backhouse‚ Jeremy Gibbons‚ Ralf Hinze and Johan Jeuring, editors, Datatype−Generic Programming. Vol. 4719 of Lecture Notes in Computer Science. Pages 72−149. Springer Berlin / Heidelberg. 2007.

To appear

[32]

Comparing Datatype Generic Libraries in Haskell

Bruno C. d. S. Oliveira Alexey Rodriguez Johan Jeuring Patrik Jansson Alex Gerdes Oleg Kiselyov

In Journal of Functional Programming. 2009.

Revised version of the Haskell Symposium 2008 paper

[33]

Comparing Libraries for Generic Programming in Haskell

Bruno C. d. S. Oliveira Alexey Rodriguez Johan Jeuring Patrik Jansson Alex Gerdes Oleg Kiselyov

In Haskell Symposium. 2008.

[34]

Computing Downwards Accumulations on Trees Quickly

Jeremy Gibbons

In Theoretical Computer Science. Vol. 169. No. 1. Pages 67–80. 1996.

Earlier version appeared in Proceedings of the 16th Australian Computer Science Conference‚ Brisbane‚ 1993

[35]

Computing Downwards Accumulations on Trees Quickly

Jeremy Gibbons

In Gopal Gupta‚ George Mohay and Rodney Topor, editors, 16th Australian Computer Science Conference. Pages 685–691. Brisbane. February, 1993.

[36]

Conditionals in Distributive Categories

Jeremy Gibbons

No. CMS−TR−97−01. School of Computing and Mathematical Sciences‚ Oxford Brookes University. January, 1997.

[37]

Constructing Red−Black Trees

Ralf Hinze

In Chris Okasaki, editor, Proceedings of the Workshop on Algorithmic Aspects of Advanced Programming Languages (WAAAPL' 99). Pages 89–99. September, 1999.

The proceedings appeared as a technical report of Columbia University‚ CUCS−023−99

[38]

Constructing Red−Black Trees

Ralf Hinze

No. IAI−TR−99−6. Institut für Informatik III‚ Universität Bonn. May, 1999.

[39]

Constructing tournament representations: An exercise in pointwise relational programming

Ralf Hinze

No. IAI−TR−2002−2. Institut für Informatik III‚ Universität Bonn. February, 2002.

[40]

Countdown: A Case Study in Origami Programming

Richard S. Bird and Shin−Cheng Mu

In Journal of Functional Programming. Vol. 15. No. 5. Pages 679−702. 2005.

[41]

Creating transformations for matrix obfuscation

Stephen Drape and Irina Voiculescu

In Proceedings of SAS 2009. August, 2009.

[42]

Datatype−Generic Programming

Jeremy Gibbons

In Roland Backhouse‚ Jeremy Gibbons‚ Ralf Hinze and Johan Jeuring, editors, Spring School on Datatype−Generic Programming. Vol. 4719 of Lecture Notes in Computer Science. Springer−Verlag. 2007.

[43]

Deduktive Datenbanken — Eine Einführung aus der Sicht der logischen Programmierung

Armin B. Cremers‚ Ulrike Griefahn and Ralf Hinze

Vieweg , AddressBraunschweig/Wiesbaden. 1994.

[44]

Derivable Type Classes

Ralf Hinze and Simon Peyton Jones

In Graham Hutton, editor, Proceedings of the 2000 ACM SIGPLAN Haskell Workshop. Vol. 41(1) of Electronic Notes in Theoretical Computer Science. Pages 5−35. Elsevier Science. August, 2001.

The preliminary proceedings appeared as a University of Nottingham technical report

[45]

Derivation of a Typed Functional LR Parser

Ralf Hinze and Ross Paterson

2003.

in preparation

[46]

Deriving Tidy Drawings of Trees

Jeremy Gibbons

In Journal of Functional Programming. Vol. 6. No. 3. Pages 535–562. 1996.

[47]

Deriving monad transformers

Ralf Hinze

No. IAI−TR−99−1. Institut für Informatik III‚ Universität Bonn. January, 1999.

[48]

Design Patterns as Higher−Order Datatype−Generic Programs

Jeremy Gibbons

In Ralf Hinze, editor, Workshop on Generic Programming. September, 2006.

[49]

Design Patterns as Higher−Order Datatype−Generic Programs

Jeremy Gibbons

In Object−Oriented Programming: Systems‚ Languages‚ Applications. San Diego. October, 2005.

A revision of Gibbons2005:DesignECOOP

[50]

Design Patterns as Higher−Order Datatype−Generic Programs

Jeremy Gibbons

In European Conference on Object−Oriented Programming. Glasgow. July, 2005.

Later version appears as Gibbons2005:DesignOOPSLA

[51]

Design and Evaluation of Slicing Obfuscations

Stephen Drape and Anirban Majumdar

No. 311. CDMTCS‚ The University of Auckland. Auckland‚ New Zealand. June, 2007.

[52]

Die Rolle der mathematischen Logik in der Künstlichen Intelligenz

Armin B. Cremers‚ Elmar Eder and Ralf Hinze

In Künstliche Intelligenz: Leitvorstellungen und Verantwortbarkeit‚ Band 1: Diskussionsgrundlage. Verein Deutscher Ingenieure. 1993.

[53]

Disciplined‚ efficient‚ generalised folds for nested datatypes

Clare Martin‚ Jeremy Gibbons and Ian Bayley

In Formal Aspects of Computing. Vol. 16. No. 1. Pages 19−35. 2004.

[54]

EffectiveAdvice: Disciplined Advice with Explicit Effects

Tom Schrijvers Bruno C. d. S. Oliveira and William R. Cook

In ACM SIG Proceedings of the 9th International Conference on Aspect−Oriented Software Development (AOSD). 2010.

[55]

Efficient Generalized Folds

Ralf Hinze

No. IAI−TR−99−8. Institut für Informatik III‚ Universität Bonn. June, 1999.

[56]

Efficient Monadic−style Backtracking

Ralf Hinze

No. IAI−TR−96−9. Institut für Informatik III‚ Universität Bonn. October, 1996.

[57]

Efficient Parallel Algorithms for Tree Accumulations

Jeremy Gibbons‚ Wentong Cai and David Skillicorn

In Science of Computer Programming. Vol. 23. Pages 1–18. 1994.

[58]

Einführung in die funktionale Programmierung − Sprachen‚ Spezifikationen‚ Grundlagen‚ Implementierung

R. Hinze

1992.

Vorlesungsskript SS 92‚ Universität Bonn‚ Institut für Informatik III

[59]

Einführung in die funktionale Programmierung mit Miranda

Ralf Hinze

B.G. Teubner , AddressStuttgart. 1992.

[60]

Enumerating the Rationals

Jeremy Gibbons‚ David Lester and Richard Bird

In Journal of Functional Programming. Vol. 16. No. 3. Pages 281−292. 2006.

[61]

Enumerating the Rationals

Jeremy Gibbons‚ David Lester and Richard Bird

In Journal of Functional Programming. Vol. 16. No. 4. 2006.

[62]

Extensible and Modular Generics for the Masses

Ralf Hinze Bruno C. d. S. Oliveira and Andres Loeh

In Henrik Nilsson, editor, Trends in Functional Programming. 2007.

Best student paper award

[63]

Fast and Loose Reasoning is Morally Correct

Nils Anders Danielsson‚ Jeremy Gibbons‚ John Hughes and Patrik Jansson

In Principles of Programming Languages. Pages 206−217. January, 2006.

[64]

Fifteen Years of Functional Pearls

Richard S. Bird

In John H. Reppy and Julia L. Lawall, editors, International Conference on Functional Programming. Pages 215. 2006.

[65]

Finding Celebrities: A Lesson in Functional Programming

Richard S. Bird and Sharon Curtis

In Journal of Functional Programming. Vol. 16. No. 1. Pages 13−20. 2006.

[66]

First−Class Phantom Types

James Cheney and Ralf Hinze

Cornell University. 2003.

[67]

Fission for Program Comprehension

Jeremy Gibbons

In Tarmo Uustalu, editor, Mathematics of Program Construction. Vol. 4014 of Lecture Notes in Computer Science. Pages 162−179. Springer−Verlag. 2006.

[68]

Formal Derivation of a Pattern Matching Algorithm

Richard S. Bird‚ Jeremy Gibbons and Geraint Jones

In Science of Computer Programming. Vol. 12. No. 2. Pages 93–104. July, 1989.

[69]

Formal Derivation of a Pattern Matching Algorithm

Richard S. Bird‚ Jeremy Gibbons and Geraint Jones

In Science of Computer Programming. Vol. 12. No. 2. Pages 93–104. July, 1989.

[70]

From Dynamic Programming to Greedy Algorithms

Richard S. Bird and Oege de Moor

In Bernhard Möller‚ Helmut Partsch and Steve Schumann, editors, IFIP TC2/WG2.1 State−of−the−Art Report on Formal Program Development. Vol. 755 of Lecture Notes in Computer Science. Springer−Verlag. 1993.

[71]

Fun with phantom types

Ralf Hinze

In Jeremy Gibbons and Oege de Moor, editors, The Fun of Programming. Pages 245−262. Palgrave Macmillan. 2003.

ISBN 1−4039−0772−2 hardback‚ ISBN 0−333−99285−7 paperback

[72]

Functional Algorithm Design

Richard S. Bird

In Science of Computer Programming. Vol. 26. No. 1−3. Pages 15–31. 1996.

[73]

Functional Algorithm Design

Richard S. Bird

In Mathematics of Program Construction. Vol. 947 of Lecture Notes in Computer Science. Pages 2−17. Springer. 1995.

[74]

Functional Cryptography

Stephen Drape

Master's Thesis 2001.

[75]

Functional Quantum Programming

Shin−Cheng Mu and Richard Bird

In Asian Workshop on Programming Languages and Systems. KAIST‚ Dajeaon‚ Korea. December, 2001.

[76]

Generalised Folds for Nested Datatypes

Richard Bird and Ross Paterson

In Formal Aspects of Computing. Vol. 11. Pages 200–222. 1999.

[77]

Generalising the Array Split Obfuscation

Stephen Drape

In Information Sciences. Vol. 177. No. 1. Pages 202–219. January, 2007.

[78]

Generalizing Generalized Tries

Ralf Hinze

No. IAI−TR−98−11. Institut für Informatik III‚ Universität Bonn. November, 1998.

[79]

Generic Downwards Accumulations

Jeremy Gibbons

In Science of Computer Programming. Vol. 37. Pages 37–65. 2000.

[80]

Generic Functional Programming with Types and Relations

Richard Bird‚ Oege de Moor and Paul Hoogendijk

In Journal of Functional Programming. Vol. 6. No. 1. Pages 1–28. 1996.

[81]

Generic Programming

Jeremy Gibbons and Johan Jeuring, editors

Jeremy Gibbons and Johan Jeuring, editors

Proceedings of the IFIP TC2 Working Conference on Generic Programming‚ Schloß Dagstuhl‚ July 2002. ISBN 1−4020−7374−7.

[82]

Generic Programming in 3D

Ralf Hinze and Andres Löh

In Science of Computer Programming. 2007.

to appear

[83]

Generic Programming‚ Now!

Ralf Hinze and Andres Löh

In Roland Backhouse‚ Jeremy Gibbons‚ Ralf Hinze and Johan Jeuring, editors, Datatype−Generic Programming. Vol. 4719 of Lecture Notes in Computer Science. Pages 150−208. Springer Berlin / Heidelberg. 2007.

[84]

Generic and Indexed Programming

Jeremy Gibbons‚ Meng Wang and Bruno Cesar dos Santos Oliveira

In Marco Morazan, editor, Trends in Functional Programming. 2007.

[85]

Genericity‚ extensibility and type−safety in the Visitor pattern

Bruno C. d. S. Oliveira

PhD Thesis 2007.

[86]

Generics as a Library

Bruno C. d. S. Oliveira‚ Ralf Hinze and Andres Löh

In Henrik Nilsson, editor, Proceedings of the Seventh Symposium on Trends in Functional Programming (TFP '06). Intellect. 2006.

[87]

Gradual Refinement: Blending Pattern Matching with Data Abstraction

Meng Wang‚ Jeremy Gibbons‚ Kazutaka Matsuda and Zhenjiang Hu

In Jules Desharnais, editor, Mathematics of Program Construction. Vol. 6120 of LNCS. 2010.

See revised journal version "Refactoring Pattern Matching"

[88]

How to Derive Tidy Drawings of Trees

Jeremy Gibbons

In C. Calude‚ M. J. J. Lennon and H. Maurer, editors, Proceedings of Salodays in Auckland. Pages 53–73. Department of Computer Science‚ University of Auckland. 1994.

Also in Proceedings of First New Zealand Formal Program Development Colloquium‚ 105–126p‥

[89]

Hybrid Dynamic Programming

Richard Bird and Oege de Moor

1994.

Programming Research Group‚ Oxford

[90]

IFIP TC2 WG2.1 International Workshop on Algorithmic Languages and Calculi

Richard S. Bird and Lambert G. L. T. Meertens, editors

Richard S. Bird and Lambert G. L. T. Meertens, editors

[91]

Improving Programs by the Introduction of Recursion

Richard S. Bird

In Communications of the ACM. Vol. 20. No. 11. Pages 856–863. November, 1977.

[92]

Improving Saddleback Search: A Lesson in Algorithm Design

Richard S. Bird

In Tarmo Uustalu, editor, Mathematics of Program Construction. Vol. 4014 of Lecture Notes in Computer Science. Pages 82−89. Springer. 2006.

[93]

Integers with Given Initial Digits

Richard Bird

In American Mathematical Monthly. Vol. 79. Pages 367−370. 1972.

[94]

Integrated Formal Methods

Jim Davies and Jeremy Gibbons, editors

Jim Davies and Jeremy Gibbons, editors

[95]

Intellectual Property Protection using Obfuscation

Stephen Drape

No. RR−10−02. March, 2010.

[96]

Introduction to Functional Programming Using Haskell

Richard S. Bird

Prentice−Hall. 1998.

[97]

Inverting Functions as Folds

Shin−Cheng Mu and Richard S. Bird

In Eerke A. Boiten and Bernhard Möller, editors, Mathematics of Program Construction. Vol. 2386 of Lecture Notes in Computer Science. Pages 209−232. Springer. 2002.

[98]

Inverting the Burrows−Wheeler Transform

Richard S. Bird and Shin−Cheng Mu

In Journal of Functional Programming. Vol. 14. No. 6. Pages 603−612. 2004.

Earlier version appeared at Haskell Workshop 2001

[99]

Knuth's Problem

Richard S. Bird

In B. Möller, editor, IFIP TC2/WG2.1 Working Conference on Constructing Programs from Specifications. Pages 1–8. North−Holland. 1991.

[100]

Lecture Notes on Algebraic and Coalgebraic Methods for Calculating Functional Programs

Jeremy Gibbons

March, 1999.

Estonian Winter School on Computer Science

[101]

Lectures on Constructive Functional Programming

Richard S. Bird

In Manfred Broy, editor, Constructive Methods in Computer Science. Pages 151–218. Springer−Verlag. 1988.

NATO ASI Series F Volume 55. Also available as Technical Monograph PRG−69‚ from the Programming Research Group‚ Oxford University

[102]

Linear−time Breadth−first Tree Algorithms: An Exercise in the Arithmetic of Folds and Zips

Geraint Jones and Jeremy Gibbons

No. 7No.1. Dept of Computer Science‚ University of Auckland. May, 1993.

Also IFIP Working Group 2.1 working paper 705 WIN−2

[103]

List Partitions

Richard S. Bird and Oege de Moor

In Formal Aspects of Computing. Vol. 5. Pages 61–78. 1993.

[104]

Loopless Functional Algorithms

Richard S. Bird

In Tarmo Uustalu, editor, Mathematics of Program Construction. Vol. 4014 of Lecture Notes in Computer Science. Pages 90−114. Springer. 2006.

[105]

Manufacturing Datatypes

Ralf Hinze

In Chris Okasaki, editor, Proceedings of the Workshop on Algorithmic Aspects of Advanced Programming Languages (WAAAPL '99). Pages 1–16. September, 1999.

The proceedings appeared as a technical report of Columbia University‚ CUCS−023−99‚ also available from http://www.cs.columbia.edu/ cdo/waaapl.html

[106]

Manufacturing Datatypes

Ralf Hinze

No. IAI−TR−99−5. Institut für Informatik III‚ Universität Bonn. April, 1999.

[107]

Manufacturing datatypes

Ralf Hinze

In JFP. Vol. 11. No. 5. Pages 493−524. September, 2001.

[108]

Mathematics of Program Construction

Richard S. Bird‚ Carroll Morgan and Jim Woodcock, editors

Richard S. Bird‚ Carroll Morgan and Jim Woodcock, editors

[109]

Maximum Marking Problems

Richard S. Bird

In Journal of Functional Programming. Vol. 11. No. 4. Pages 411−424. 2001.

[110]

Meertens' Number

Richard S. Bird

In Journal of Functional Programming. Vol. 8. No. 1. Pages 83−88. 1998.

[111]

Metamorphisms: Streaming Representation−Changers

Jeremy Gibbons

In Science of Computer Programming. Vol. 65. No. 2. Pages 108−139. 2007.

[112]

Metrics−based Evaluation of Slicing Obfuscations

Anirban Majumdar‚ Stephen Drape and Clark Thomborson

In Proceeding of the Third International Symposium on Information Assurance and Security. Pages 472–477. IEEE Computer Society. August, 2007.

[113]

Minimal On−line List Labelling

Richard S. Bird and Stefan Sadnicki

In Information Processing Letters. Vol. 101. No. 1. Pages 41−45. 2007.

[114]

Modular Visitor Components: A Practical Solution to the Expression Families Problem

Bruno C. d. S. Oliveira

In Sophia Drossopoulou, editor, 23rd European Conference on Object Oriented Programming (ECOOP). July, 2009.

[115]

Modularising inductive families

Hsiang−Shang Ko and Jeremy Gibbons

In Jaakko Järvi and Shin−Cheng Mu, editors, Workshop on Generic Programming. Pages 13−24. September, 2011.

[116]

More Haste‚ Less Speed: Lazy Versus Eager Evaluation

Richard S. Bird‚ Geraint Jones and Oege de Moor

In Journal of Functional Programming. Vol. 7. No. 5. Pages 541–547. 1997.

[117]

More on Merging and Selection

Jeremy Gibbons

No. CMS−TR−97−08. School of Computing and Mathematical Sciences‚ Oxford Brookes University. October, 1997.

[118]

Nested Datatypes

Richard S. Bird and Lambert Meertens

In Johan Jeuring, editor, LNCS 1422: Proceedings of Mathematics of Program Construction. Pages 52–67. Marstrand‚ Sweden. June, 1998. Springer−Verlag.

[119]

Non Recursive Functionals

Richard Bird

In Zeitschrift für mathematische Logik und Grundlagen der Mathematik. Vol. 21. Pages 41–46. 1975.

[120]

Notes on Recursion Elimination

Richard S. Bird

In Communications of the ACM. Vol. 20. No. 6. Pages 434–439. 1977.

[121]

Numerical Representations as Higher−Order Nested Datatypes

Ralf Hinze

No. IAI−TR−98−12. Institut für Informatik III‚ Universität Bonn. December, 1998.

[122]

Obfuscating Set Representations

Stephen Drape

No. RR−04−09. Oxford University Computing Laboratory. May, 2004.

[123]

Obfuscation of Abstract Data−Types

Stephen Drape

PhD Thesis , type={D}{P}hil Thesis DPhil ThesisType. Oxford University Computing Laboratory. 2004.

[124]

Objects to Unify Type Classes and GADTs

Bruno C. d. S. Oliveira and Martin Sulzmann

2008.

[125]

On Building Trees with Minimum Height

Richard S. Bird

In Journal of Functional Programming. Vol. 7. No. 4. Pages 441–445. 1997.

[126]

On Building Trees with Minimum Height‚ Relationally

Shin−Cheng Mu and Richard Bird

In First Asian Workshop on Programming Languages and Systems. 2000.

[127]

On Computing Representatives

Richard S. Bird and Jesús N. Ravelo

In Information Processing Letters. Vol. 63. Pages 1–7. 1997.

[128]

On Merging and Selection

Richard S. Bird

In Journal of Functional Programming. Vol. 7. No. 3. Pages 349–354. 1997.

[129]

On Removing Duplicates

Richard S. Bird

In Journal of Functional Programming. Vol. 1. No. 2. Pages 235−243. 1991.

[130]

On Tiling a Chessboard

Richard S. Bird

In Journal of Functional Programming. Vol. 14. No. 6. Pages 613−622. 2004.

[131]

On Transformations of Programs

Richard Bird

In Journal of Computer and System Sciences. Vol. 8. Pages 22−35. 1974.

[132]

On the Semantics of Nested Datatypes

Clare Martin and Jeremy Gibbons

In Information Processing Letters. Vol. 80. No. 5. Pages 233–238. December, 2001.

[133]

Open data types and open functions

Andres Löh and Ralf Hinze

In Michael Maher, editor, Proceedings of the 8th ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming (PPDP '06). Pages 133−144. New York‚ NY‚ USA. July, 2006. ACM.

[134]

Open data types and open functions

Ralf Hinze and Andres Löh

No. IAI−TR−2006−3. Institut für Informatik III‚ Universität Bonn. February, 2006.

[135]

Origami Programming

Jeremy Gibbons

In Jeremy Gibbons and Oege de Moor, editors, The Fun of Programming. Pages 41−60. Palgrave. 2003.

[136]

Parametric Datatype−Genericity

Jeremy Gibbons and Ross Paterson

In Workshop on Generic Programming. Edinburgh. August, 2009.

[137]

Patterns in Datatype−Generic Programming

Jeremy Gibbons

In Jörg Striegnitz and Kei Davis, editors, Multiparadigm Programming. Vol. 27. Pages 277−289. John von Neumann Institute for Computing (NIC). 2003.

First International Workshop on Declarative Programming in the Context of Object−Oriented Languages (DPCOOL)

[138]

Perfect Trees and Bit−reversal Permutations

Ralf Hinze

No. IAI−TR−99−4. Institut für Informatik III‚ Universität Bonn. March, 1999.

[139]

Pointwise Relational Programming

Oege de Moor and Jeremy Gibbons

In Algebraic Methodology and Software Technology. Vol. 1816 of Lecture Notes in Computer Science. Pages 371–390. May, 2000.

[140]

Polymorphic String Matching

Richard S. Bird

In Haskell Workshop. Pages 110–115. New York‚ NY‚ USA. 2005. ACM Press.

[141]

Polytypic Downwards Accumulations

Jeremy Gibbons

In Johan Jeuring, editor, Proceedings of Mathematics of Program Construction. Vol. 1422 of Lecture Notes in Computer Science. Pages 207−233. Marstrand‚ Sweden. June, 1998. Springer−Verlag.

[142]

Polytypic Functions Over Nested Datatypes

Ralf Hinze

No. IAI−TR−98−10. Institut für Informatik III‚ Universität Bonn. October, 1998.

[143]

Polytypic Programming With Ease

Ralf Hinze

No. IAI−TR−99−2. Institut für Informatik III‚ Universität Bonn. February, 1999.

[144]

Polytypic values possess polykinded types

Ralf Hinze

In Science of Computer Programming. Vol. 43. No. 2−3. Pages 129−159. , 2002.

[145]

Polytypic values possess polykinded types

Ralf Hinze

No. IAI−TR−99−15. Institut für Informatik III‚ Universität Bonn. December, 1999.

[146]

Program Optimisation‚ Naturally

Richard Bird‚ Jeremy Gibbons and Geraint Jones

In J. W. Davies‚ A. W. Roscoe and J. C. P. Woodcock, editors, Millenial Perspectives in Computer Science. Palgrave. 2000.

[147]

Program Optimisation‚ Naturally

Richard Bird‚ Jeremy Gibbons and Geraint Jones

In J. W. Davies‚ A. W. Roscoe and J. C. P. Woodcock, editors, Millenial Perspectives in Computer Science. Palgrave. 2000.

[148]

Programs and Machines

Richard Bird

Wiley. 1976.

[149]

Projection−based Strictness Analysis — Theoretical and Practical Aspects

Ralf Hinze

PhD Thesis , type=Inauguraldissertation InauguraldissertationType. Universität Bonn. November, 1995.

[150]

Projektionsbasierte Striktheitsanalyse

Ralf Hinze

In Ausgezeichnete Informatikdissertationen 1996. Pages 46−61. B.G. Teubner , AddressStuttgart. 1998.

[151]

Prological Features in a Functional Setting — Axioms and Implementations

Ralf Hinze

In Masahiko Sato and Yoshihito Toyama, editors, Proceedings of the Third Fuji International Symposium on Functional and Logic Programming (FLOPS '98). Pages 98–122. Singapore‚ New Jersey‚ London‚ Hong Kong. April, 1998. World Scientific.

[152]

Proof Methods for Corecursive Programs

Jeremy Gibbons and Graham Hutton

In Fundamenta Informaticae. Vol. 66. No. 4. Pages 353−366. , 2005.

[153]

Proof Methods for Structured Corecursive Programs

Jeremy Gibbons and Graham Hutton

In Proceedings of 1st Scottish Workshop on Functional Programming. 1999.

[154]

Rebuilding a Tree from Its Traversals: A Case Study of Program Inversion

Shin−Cheng Mu and Richard S. Bird

In Atsushi Ohori, editor, Asian Symposium on Programming Languages and Systems. Vol. 2895 of Lecture Notes in Computer Science. Pages 265−282. Springer. 2003.

[155]

Recursion Elimination with Variable Parameters

Richard S. Bird

In Computer Journal. Vol. 22. No. 2. Pages 151–154. 1979.

[156]

Refactoring Pattern Matching

Meng Wang‚ Jeremy Gibbons‚ Kazutaka Matsuda and Zhenjiang Hu

In Science of Computer Programming. January, 2011.

Revised version of the MPC2010 paper "Gradual Refinement"

[157]

Relational Program Derivation and Context−Free Language Recognition

Richard Bird and Oege de Moor

In A. W. Roscoe, editor, A Classical Mind: Essays in Honour of C.A.R.Hoare. Chapter 2. Prentice−Hall. 1994.

[158]

Report on Fourth Workshop on Commercial Users of Functional Programming

Jeremy Gibbons

December, 2007.

[159]

Scala for Generic Programmers

Bruno C. d. S. Oliveira and Jeremy Gibbons

In Journal of Functional Programming. Vol. 20. No. 3‚4. Pages 303−352. 2010.

Revised version of the WGP2008 paper

[160]

Scala for Generic Programmers

Bruno Oliveira and Jeremy Gibbons

In Ralf Hinze, editor, Workshop on Generic Programming. Victoria‚ BC. September, 2008.

[161]

Slicing Obfuscations: Design‚ Correctness and Evaluation

Anirban Majumdar‚ Stephen Drape and Clark Thomborson

In DRM '07: Proceedings of the 2007 ACM workshop on Digital Rights Management. Pages 70–81. ACM Press. 2007.

[162]

Small Specification Exercises

Richard S. Bird

In W. H. J. Feijen‚ A. J. M. van Gasteren‚ D. Gries and J. Misra, editors, Beauty is our Business. Pages 36–43. Springer−Verlag. 1990.

[163]

Solving Optimisation Problems with Catamorphisms

Richard S. Bird and Oege de Moor

In Mathematics of Program Construction. Vol. 669 of Lecture Notes in Computer Science. Pages 45–66. Springer. 1993.

[164]

Specifying Imperative Data Obfuscations

Stephen Drape‚ Clark Thomborson and Anirban Majumdar

In Proceeding of the 10th Information Security Conference (ISC 07). Vol. 4779 of Lecture Notes in Computer Science. Pages 299–314. Springer. 2007.

[165]

Speeding Up Programs

Richard S. Bird

In Computer Journal. Vol. 17. No. 4. Pages 337–339. 1974.

[166]

Spring School on Datatype−Generic Programming

Roland Backhouse‚ Jeremy Gibbons‚ Ralf Hinze and Johan Jeuring, editors

Roland Backhouse‚ Jeremy Gibbons‚ Ralf Hinze and Johan Jeuring, editors

[167]

Straight to the Heart of Computer Science via Functional Programming

Robert Giegerich‚ Ralf Hinze and Stefan Kurtz

In Matthias Felleisen‚ Michael Hanus and Simon Thompson, editors, Proceedings of the Workshop on Functional and Declarative Programming in Education‚ FDPE'99‚ Paris‚ France. Pages 1–5. September, 1999.

The proceedings appeared as a technical report of Rice University‚ Rice COMP TR99−346

[168]

Streaming Representation−Changers

Jeremy Gibbons

In Dexter Kozen, editor, Mathematics of Program Construction. Vol. 3125 of Lecture Notes in Computer Science. Pages 142−168. July, 2004.

http://www.springerlink.com/index/LHQ73WU5GU686976

[169]

Structured Programming in Java

Jeremy Gibbons

In SIGPLAN Notices. Vol. 33. No. 4. Pages 40–43. April, 1998.

Also in Fintan Culwin‚ editor‚ Proceedings of the Second Conference on Java in the Computing Curriculum‚ South Bank University‚ London

[170]

Summer School on Generic Programming

Roland Backhouse and Jeremy Gibbons, editors

Vol. 2793 of Lecture Notes in Computer Science. Springer−Verlag. 2003.

[171]

Surveyor's Forum: A Recurring Bug

Richard S. Bird

In ACM Computing Surveys. Vol. 13. No. 2. Pages 243. 1981.

[172]

Tabulation Techniques for Recursive Programs

Richard S. Bird

In ACM Computing Surveys. Vol. 12. No. 4. Pages 403–417. December, 1980.

See DBLP:journals/csur/Bird81

[173]

The Algebra of Programming

Richard Bird and Oege de Moor

Prentice−Hall. 1996.

[174]

The Alpha−Beta Algorithm: An Exercise in Program Transformation

Richard S. Bird and John Hughes

In Information Processing Letters. Vol. 24. No. 1. Pages 53–57. January, 1987.

[175]

The Categorical Abstract Machine: Basics and Enhancments

Ralf Hinze

No. IAI−TR−92−1. Institut für Informatik III‚ Universität Bonn. December, 1992.

[176]

The Different Aspects of Monads and Mixins

Bruno C. d. S. Oliveira

2009.

Draft Paper. Last Update: 04/03/2009. Submitted to ICFP 2009.

[177]

The Essence of the Iterator Pattern

Jeremy Gibbons and Bruno César dos Santos Oliveira

In Conor McBride and Tarmo Uustalu, editors, Mathematically−Structured Functional Programming. 2006.

Superseded by Gibbons&Oliveira2008:Essence

[178]

The Essence of the Iterator Pattern

Jeremy Gibbons and Bruno César dos Santos Oliveira

In Journal of Functional Programming. Vol. 19. No. 3&4. Pages 377−402. 2009.

Revised version of Gibbons&Oliveira2006:Essence

[179]

The Fun of Programming

Jeremy Gibbons and Oege de Moor, editors

Palgrave. 2003.

Hardback ISBN: 1−4039−0772−2

[180]

The Generic Approximation Lemma

Graham Hutton and Jeremy Gibbons

In Information Processing Letters. Vol. 79. No. 4. Pages 197–201. August, 2001.

[181]

The Jogger's Problem

Richard S. Bird

In Information Processing Letters. Vol. 13. No. 3. Pages 114–117. 1981.

[182]

The Last Tail

R. S. Bird

In Journal of Functional Programming. Vol. 3. No. 1. Pages 117–122. 1993.

[183]

The Matrix Obfuscated

Stephen Drape

No. RR−04−12. Oxford University Computing Laboratory. June, 2004.

[184]

The Promotion and Accumulation Strategies in Transformational Programming

Richard S. Bird

In ACM Transactions on Programming Languages and Systems. Vol. 6. No. 4. Pages 487–504. October, 1984.

See also Bird85:Promotion

[185]

The Smallest Upravel

Richard S. Bird

In Science of Computer Programming. Vol. 18. Pages 281–292. 1992.

[186]

The Suitability of Different Binary Tree Obfuscations

Stephen Drape

No. 310. CDMTCS‚ The University of Auckland. Auckland‚ New Zealand. June, 2007.

[187]

The Third Homomorphism Theorem

Jeremy Gibbons

In Journal of Functional Programming. Vol. 6. No. 4. Pages 657–665. 1996.

Earlier version appeared in B. Jay‚C. editor‚ Computing: The Australian Theory Seminar‚ Sydney‚ December 1994‚ 62–6p.9

[188]

The Under−Appreciated Unfold

Jeremy Gibbons and Geraint Jones

In International Conference on Functional Programming. Pages 273–279. Baltimore‚ Maryland. September, 1998.

[189]

The Use of Matrices in Obfuscation

Stephen Drape and Irina Voiculescu

No. RR−08−12. Oxford University Computing Laboratory. December, 2008.

[190]

The Visitor Pattern as a Reusable‚ Generic‚ Type−Safe Component

Bruno C. d. S. Oliveira‚ Meng Wang and Jeremy Gibbons

In Object−Oriented Programming: Systems‚ Languages‚ Applications (OOPSLA). 2008.

[191]

The Minout Problem

Richard S. Bird

In Journal of Functional Programming. Vol. 1. No. 1. Pages 121–124. January, 1991.

[192]

Theory and Applications of Inverting Functions as Folds

Shin−Cheng Mu and Richard S. Bird

In Science of Computer Programming. Vol. 51. No. 1−2. Pages 87−116. 2004.

[193]

Towards a Colimit−Based Semantics for Visual Programming

Jeremy Gibbons

In Coordination Models and Languages. Vol. 2315 of Lecture Notes in Computer Science. Pages 166–173. April, 2002.

[194]

Tracing Lazy Functional Languages

Jeremy Gibbons and Keith Wansbrough

In Michael E. Houle and Peter Eades, editors, Computing: The Australasian Theory Seminar. Pages 11–20. Melbourne. January, 1996.

[195]

Transformational Programming and the Paragraph Problem

Richard S. Bird

In Science of Computer Programming. Vol. 6. Pages 159–189. 1986.

[196]

Transforming the .NET Intermediate Language Using Path Logic Programming

Stephen Drape‚ Oege de Moor and Ganesh Sittampalam

In Principles and Practice of Declarative Programming. Pages 133–144. ACM Press. 2002.

[197]

Translucent Abstraction: Safe Views through Invertible Programming (Extended version)

Meng Wang‚ Jeremy Gibbons and Kazutaka Matsuda

2009.

[198]

Trouble Shared is Trouble Halved

Richard Bird and Ralf Hinze

In Haskell Workshop. Pages 1–6. New York‚ NY‚ USA. 2003. ACM Press.

[199]

Two Exercises Found In a Book on Algorithmics

Richard S. Bird and Lambert Meertens

In Lambert Meertens, editor, Program Specification and Transformation. Pages 451–457. North−Holland. 1987.

[200]

Two Greedy Algorithms

Richard S. Bird

In Journal of Functional Programming. Vol. 2. No. 2. Pages 237–244. 1992.

[201]

Two−Dimensional Pattern Matching

Richard S. Bird

In Information Processing Letters. Vol. 6. No. 5. Pages 168–170. 1977.

[202]

Type−indexed Data Types

Ralf Hinze‚ Johan Jeuring and Andres Löh

In Eerke A. Boiten and Bernhard Möller, editors, Proceedings of the Sixth International Conference on Mathematics of Program Construction (MPC '02). Vol. 2386 of Lecture Notes in Computer Science. Pages 148–174. Springer Berlin / Heidelberg. July, 2002.

[203]

Type−indexed data types

Ralf Hinze‚ Johan Jeuring and Andres Löh

In Science of Computer Programming. Vol. 51. No. 1−2. Pages 117−151. May, 2004.

[204]

Type−indexed data types

Ralf Hinze‚ Johan Jeuring and Andres Löh

No. UU−CS−2002−11. Universiteit Utrecht. 2002.

[205]

TypeCase: A Design Pattern for Type−Indexed Functions

Bruno César dos Santos Oliveira and Jeremy Gibbons

In Daan Leijen, editor, Haskell Workshop. Pages 98−109. 2005.

[206]

Typed Contracts for Functional Programming

Ralf Hinze‚ Johan Jeuring and Andres Löh

In Masami Hagiya and Philip Wadler, editors, Proceedings of the Eighth International Symposium on Functional and Logic Programming (FLOPS 2006). Vol. 3945 of Lecture Notes in Computer Science. Pages 208−225. Springer Berlin / Heidelberg. April, 2006.

[207]

Unfolding Abstract Datatypes

Jeremy Gibbons

In Mathematics of Program Construction. July, 2008.

[208]

Unfolding Pointer Algorithms

Richard S. Bird

In Journal of Functional Programming. Vol. 11. No. 3. Pages 347−358. 2001.

[209]

Unravelling Greedy Algorithms

Richard S. Bird

In Journal of Functional Programming. Vol. 2. No. 3. Pages 375–385. 1992.

[210]

Upwards and Downwards Accumulations on Trees

Jeremy Gibbons

In R. S. Bird‚ C. C. Morgan and J. C. P. Woodcock, editors, Mathematics of Program Construction. Vol. 669 of Lecture Notes in Computer Science. Pages 122–138. Springer−Verlag. 1993.

A revised version appears in the Proceedings of the Massey Functional Programming Workshop‚ 1992

[211]

Using Circular Programs to Eliminate Multiple Traversals of Data

Richard S. Bird

In Acta Informatica. Vol. 21. Pages 239–250. 1984.

[212]

Using Haskell to Model Tree Obfuscations

Stephen Drape

No. RR−04−17. Oxford University Computing Laboratory. July, 2004.

[213]

What Does Aspect−Oriented Programming Mean for Functional Programmers?

Meng Wang and Bruno C. d. S. Oliveira

In Patrik Jansson, editor, Proceedings of the ACM SIGPLAN Workshop on Generic Programming (WGP'09). ACM. August, 2009.

[214]

When is a Function a Fold or an Unfold?

Jeremy Gibbons‚ Graham Hutton and Thorsten Altenkirch

In Electronic Notes in Theoretical Computer Science. Vol. 44. No. 1. April, 2001.

Proceedings of Coalgebraic Methods in Computer Science

[215]

Zippy Tabulations of Recursive Functions

Richard S. Bird

In Philippe Audebaud and Christine Paulin−Mohring, editors, Mathematics of Program Construction. Vol. 5133 of Lecture Notes in Computer Science. Pages 92−109. Springer. 2008.

[216]

“Scrap Your Boilerplate” Reloaded

Ralf Hinze‚ Andres Löh and Bruno C.d.S. Oliveira

In Masami Hagiya and Philip Wadler, editors, Proceedings of the Eighth International Symposium on Functional and Logic Programming (FLOPS 2006). Vol. 3945 of Lecture Notes in Computer Science. Pages 13−29. Springer Berlin / Heidelberg. April, 2006.

[217]

“Scrap Your Boilerplate” Reloaded

Ralf Hinze‚ Andres Löh and Bruno C.d.S. Oliveira

No. IAI−TR−2006−2. Institut für Informatik III‚ Universität Bonn. January, 2006.

[218]

“Scrap Your Boilerplate” Revolutions

Ralf Hinze and Andres Löh

In Tarmo Uustalu, editor, 8th International Conference on Mathematics of Program Construction (MPC '06). Vol. 4014 of Lecture Notes in Computer Science. Pages 180−208. Springer Berlin / Heidelberg. July, 2006.

[219]

de Bruijn Notation as a Nested Datatype

Richard S. Bird and Ross Paterson

In Journal of Functional Programming. Vol. 9. No. 1. Pages 77–91. 1999.

[220]

Book review: “Purely Functional Data Structures”‚ by Chris Okasaki

Ralf Hinze

In JFP. Vol. 9. No. 5. Pages 577–578. September, 1999.

[221]

Functional Pearl: Explaining binomial heaps

Ralf Hinze

In JFP. Vol. 9. No. 1. Pages 93−104. January, 1999.

[222]

Functional Pearl: Perfect trees and bit−reversal permutations

Ralf Hinze

In JFP. Vol. 10. No. 3. Pages 305−317. May, 2000.

[223]

Functional Pearl: Weaving a web

Ralf Hinze and Johan Jeuring

In JFP. Vol. 11. No. 6. Pages 681−689. November, 2001.

[224]

Haskell 98 — A Non−strict‚ Purely Functional Language

Simon Peyton Jones [editor]‚ John Hughes [editor]‚ Simon‚ Lennart Augustsson‚ Dave Barton‚ Brian Boutel‚ Warren Burton‚ Simon Fraser‚ Joseph Fasel‚ Kevin Hammond‚ Ralf Hinze‚ Paul Hudak‚ Thomas Johnsson‚ Mark Jones‚ John Launchbury‚ Erik Meijer‚ John Peterson‚ Alastair Reid‚ Colin Runciman and Philip Wadler

Available from http://www.haskell.org/definition/. February, 1999.

[225]

Prolog's Control Constructs in a Functional Setting — Axioms and Implementation

Ralf Hinze

In IJFCS. Vol. 12. No. 2. Pages 125−170. 2001.