Skip to main content

Richard Bird : Publications

Click here to download all publications in a single bibtex file

@article{dropping-digits,
  title = "A Greedy Algorithm for Dropping Digits",
  author = "Richard S. Bird and Shin-Cheng Mu",
  year = "2021",
  journal = "Journal of Functional Programming",
  pages = "e29",
  volume = "31",
  doi = "10.1017/S0956796821000198",
}
@incollection{algorithmics,
  title = "Algorithmics",
  author = "Richard S. Bird, Jeremy Gibbons, Ralf Hinze, Peter Hoefner, Johan Jeuring, Lambert G. L. T. Meertens, Bernhard Moeller, Carroll Morgan, Tom Schrijvers, Wouter Swierstra, Nicolas Wu",
  year = "2021",
  booktitle = "Advancing Research in Information and Communication Technology - IFIP's Exciting First 60+ Years, Views from the Technical Committees and Working Groups",
  editor = "Michael Goedicke, Erich J. Neuhold, Kai Rannenberg",
  pages = "59-98",
  publisher = "Springer",
  series = "IFIP Advances in Information and Communication Technology",
  volume = "600",
  doi = "10.1007/978-3-030-81701-5_3",
}
@book{adwh,
  title = "Algorithm Design with Haskell",
  author = "Richard Bird and Jeremy Gibbons",
  year = "2020",
  isbn = "9781108491617",
  month = "July",
  publisher = "Cambridge University Press",
  url = "http://www.cs.ox.ac.uk/publications/books/adwh/",
}
@article{garcia-wachs,
  title = "An Optimal, Purely Functional Implementation of the Garsia-Wachs Algorithm",
  author = "Richard S. Bird",
  year = "2020",
  journal = "Journal of Functional Programming",
  pages = "e3",
  volume = "30",
  doi = "10.1017/S0956796819000194",
}
@article{fake-coin,
  title = "How to Find a Fake Coin",
  author = "Richard S. Bird",
  year = "2019",
  journal = "Journal of Functional Programming",
  pages = "e8",
  volume = "29",
  doi = "10.1017/S0956796819000030",
}
@inproceedings{nondeterministic-functions,
  title = "How to Calculate with Nondeterministic Functions",
  author = "Richard S. Bird and Florian Rabe",
  year = "2019",
  booktitle = "Mathematics of Program Construction",
  editor = "Graham Hutton",
  pages = "138-154",
  publisher = "Springer",
  volume = "11825",
  doi = "10.1007/978-3-030-33636-3_6",
}
@article{mingle-streams,
  title = "How to Mingle Streams",
  author = "Richard S. Bird",
  year = "2015",
  journal = "Journal of Functional Programming",
  pages = "e4",
  volume = "25",
  doi = "10.1017/S0956796815000064",
}
@book{tfwh,
  title = "Thinking Functionally with Haskell",
  author = "Richard Bird",
  year = "2014",
  isbn = "9781107452640",
  publisher = "Cambridge University Press",
  url = "https://www.cs.ox.ac.uk/publications/books/functional/",
}
@inproceedings{uitbaf,
  title = "Understanding Idiomatic Traversals Backwards and Forwards",
  author = "Richard Bird and Jeremy Gibbons and Stefan Mehner and Janis Voigtlaender and Tom Schrijvers",
  year = "2013",
  booktitle = "Haskell Symposium",
  month = "sep",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/uitbaf.pdf",
  doi = "10.1145/2503778.2503781",
}
@article{in-situ,
  title = "An In-Situ Algorithm for Expanding a Graph",
  author = "Richard S. Bird",
  year = "2013",
  journal = "Journal of Functional Programming",
  number = "2",
  pages = "174-184",
  volume = "23",
  doi = "10.1017/S0956796812000457",
}
@unpublished{backwards,
  title = "Be Kind, Rewind: A Modest Proposal about Traversal",
  author = "Jeremy Gibbons and Richard Bird",
  year = "2012",
  month = "May",
  note = "Submitted for publication (but rejected)",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/backwards.pdf",
}
@article{cyclic-shared,
  title = "On Building Cyclic and Shared Structures in Haskell",
  author = "Richard S. Bird",
  year = "2012",
  journal = "Formal Aspects of Computing",
  number = "4-6",
  pages = "609-621",
  volume = "24",
  doi = "10.1007/s00165-012-0243-6",
}
@article{building-consensus,
  title = "Building a Consensus: A Rectangle Covering Problem",
  author = "Richard S. Bird",
  year = "2011",
  journal = "Journal of Functional Programming",
  number = "2",
  pages = "119-128",
  volume = "21",
  doi = "10.1017/S0956796810000316",
}
@article{determinants,
  title = "A simple division-free algorithm for computing determinants",
  author = "Richard S. Bird",
  year = "2011",
  journal = "Information Processing Letters",
  url = "http://dx.doi.org/10.1016/j.ipl.2011.08.006",
  doi = "10.1016/j.ipl.2011.08.006",
}
@book{pofad,
  title = "Pearls of Functional Algorithm Design",
  author = "Richard Bird",
  year = "2010",
  isbn = "9780521513388",
  publisher = "Cambridge University Press",
  url = "http://www.cambridge.org/gb/knowledge/isbn/item5600469",
}
@inproceedings{meeting-fanclub,
  title = "Meeting a Fanclub: A Lattice of Generic Shape Selectors",
  author = "Roland Carl Backhouse, Richard S. Bird, Paul F. Hoogendijk",
  year = "2009",
  booktitle = "Workshop on Generic Programming",
  editor = "Patrik Jansson and Sibylle Schupp",
  pages = "73-84",
  publisher = "ACM",
  doi = "10.1145/1596614.1596625",
}
@article{spider-spinning,
  title = "Spider Spinning for Dummies",
  author = "Richard S. Bird",
  year = "2008",
  booktitle = "Advanced Functional Programming",
  editor = "Pieter W. M. Koopman and Rinus Plasmeijer and S. Doaitse Swierstra",
  pages = "39-65",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  volume = "5832",
  doi = "10.1007/978-3-642-04652-0_2",
}
@inproceedings{DBLP:conf/mpc/Bird08,
  title = "Zippy Tabulations of Recursive Functions",
  author = "Richard S. Bird",
  year = "2008",
  booktitle = "Mathematics of Program Construction",
  editor = "Philippe Audebaud and Christine Paulin-Mohring",
  isbn = "978-3-540-70593-2",
  pages = "92-109",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  volume = "5133",
  doi = "10.1007/978-3-540-70594-9_7",
}
@article{BirdSadnicki2007:Online,
  title = "Minimal On-line List Labelling",
  author = "Richard S. Bird and Stefan Sadnicki",
  year = "2007",
  journal = "Information Processing Letters",
  number = "1",
  pages = "41-45",
  volume = "101",
}
@article{Bird2006:Program,
  title = "A Program to Solve {S}udoku",
  author = "Richard S. Bird",
  year = "2006",
  journal = "Journal of Functional Programming",
  number = "6",
  pages = "671-679",
  volume = "16",
  doi = "10.1017/S0956796806006058",
}
@article{Gibbons*2006:Enumerating,
  title = "Enumerating the Rationals",
  author = "Jeremy Gibbons and David Lester and Richard Bird",
  year = "2006",
  journal = "Journal of Functional Programming",
  number = "3",
  pages = "281-292",
  url = "http://www.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/rationals.pdf",
  volume = "16",
}
@article{BirdCurtis2006:Finding,
  title = "Finding Celebrities: A Lesson in Functional Programming",
  author = "Richard S. Bird and Sharon Curtis",
  year = "2006",
  journal = "Journal of Functional Programming",
  number = "1",
  pages = "13-20",
  volume = "16",
  doi = "10.1017/S0956796805005678",
}
@inproceedings{DBLP:conf/icfp/Bird06,
  title = "Fifteen Years of Functional Pearls",
  author = "Richard S. Bird",
  year = "2006",
  booktitle = "International Conference on Functional Programming",
  editor = "John H. Reppy and Julia L. Lawall",
  isbn = "1-59593-309-3",
  pages = "215",
  doi = "10.1145/1159803.1159832",
}
@inproceedings{Bird2006:Loopless,
  title = "Loopless Functional Algorithms",
  author = "Richard S. Bird",
  year = "2006",
  booktitle = "Mathematics of Program Construction",
  editor = "Tarmo Uustalu",
  isbn = "3-540-35631-2",
  pages = "90-114",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  volume = "4014",
  doi = "10.1007/11783596_9",
}
@inproceedings{Bird2006:Improving,
  title = "Improving Saddleback Search: A Lesson in Algorithm Design",
  author = "Richard S. Bird",
  year = "2006",
  booktitle = "Mathematics of Program Construction",
  editor = "Tarmo Uustalu",
  isbn = "3-540-35631-2",
  pages = "82-89",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  volume = "4014",
  doi = "10.1007/11783596_8",
}
@article{BirdMu2005:Countdown,
  title = "Countdown: A Case Study in Origami Programming",
  author = "Richard S. Bird and Shin-Cheng Mu",
  year = "2005",
  journal = "Journal of Functional Programming",
  number = "5",
  pages = "679-702",
  volume = "15",
  doi = "10.1017/S0956796805005642",
}
@inproceedings{Bird2005:Polymorphic,
  title = "Polymorphic String Matching",
  author = "Richard S. Bird",
  year = "2005",
  address = "New York, NY, USA",
  booktitle = "Haskell Workshop",
  isbn = "1-59593-071-X",
  location = "Tallinn, Estonia",
  pages = "110--115",
  publisher = "ACM Press",
  doi = "10.1145/1088348.1088359",
}
@article{DBLP:journals/jfp/BirdM04,
  title = "Inverting the {B}urrows-{W}heeler Transform",
  author = "Richard S. Bird and Shin-Cheng Mu",
  year = "2004",
  journal = "Journal of Functional Programming",
  note = "Earlier version appeared at Haskell Workshop 2001",
  number = "6",
  pages = "603-612",
  url = "http://www.comlab.ox.ac.uk/people/richard.bird/online/BirdMu2004Inverting.pdf",
  volume = "14",
  doi = "10.1017/S0956796804005118",
}
@article{DBLP:journals/jfp/Bird04,
  title = "On Tiling a Chessboard",
  author = "Richard S. Bird",
  year = "2004",
  journal = "Journal of Functional Programming",
  number = "6",
  pages = "613-622",
  volume = "14",
  doi = "10.1017/S095679680400512X",
}
@article{DBLP:journals/scp/MuB04,
  title = "Theory and Applications of Inverting Functions as Folds",
  author = "Shin-Cheng Mu and Richard S. Bird",
  year = "2004",
  journal = "Science of Computer Programming",
  number = "1-2",
  pages = "87-116",
  volume = "51",
  doi = "10.1016/j.scico.2003.09.003",
}
@inproceedings{DBLP:conf/aplas/MuB03,
  title = "Rebuilding a Tree from Its Traversals: A Case Study of Program Inversion",
  author = "Shin-Cheng Mu and Richard S. Bird",
  year = "2003",
  booktitle = "Asian Symposium on Programming Languages and Systems",
  editor = "Atsushi Ohori",
  isbn = "3-540-20536-5",
  pages = "265-282",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  url = "http://www.comlab.ox.ac.uk/people/richard.bird/online/MuBird2003Rebuilding.pdf",
  volume = "2895",
}
@inproceedings{BirdHinze2003:Trouble,
  title = "Trouble Shared is Trouble Halved",
  author = "Richard Bird and Ralf Hinze",
  year = "2003",
  address = "New York, NY, USA",
  booktitle = "Haskell Workshop",
  isbn = "1-58113-758-3",
  location = "Uppsala, Sweden",
  pages = "1--6",
  publisher = "ACM Press",
  doi = "10.1145/871895.871896",
}
@inproceedings{BirdGibbons2003:Arithmetic,
  title = "Arithmetic Coding with Folds and Unfolds",
  author = "Richard Bird and Jeremy Gibbons",
  year = "2003",
  booktitle = "Advanced Functional Programming 4",
  editor = "Johan Jeuring and Simon Peyton Jones",
  pages = "1-26",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/arith.pdf",
  volume = "2638",
}
@inproceedings{DBLP:conf/mpc/MuB02,
  title = "Inverting Functions as Folds",
  author = "Shin-Cheng Mu and Richard S. Bird",
  year = "2002",
  booktitle = "Mathematics of Program Construction",
  editor = "Eerke A. Boiten and Bernhard M{\"o}ller",
  isbn = "3-540-43857-2",
  pages = "209-232",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/MuBird2002Inverting.pdf",
  volume = "2386",
}
@incollection{Bird*2002:Optimization,
  title = "Algebraic Methods for Optimization Problems",
  author = "Richard Bird and Jeremy Gibbons and Shin Cheng Mu",
  year = "2002",
  booktitle = "Algebraic and Coalgebraic Methods in the Mathematics of Program Construction",
  editor = "Roland Backhouse and Roy Crole and Jeremy Gibbons",
  pages = "281--307",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/acmmpc-optimization.pdf",
  volume = "2297",
}
@inproceedings{MuBird2001:Functional,
  title = "Functional Quantum Programming",
  author = "Shin-Cheng Mu and Richard Bird",
  year = "2001",
  address = "KAIST, Dajeaon, Korea",
  booktitle = "Asian Workshop on Programming Languages and Systems",
  month = "dec",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/MuBird2001Functional.pdf",
}
@article{DBLP:journals/jfp/Bird01a,
  title = "Maximum Marking Problems",
  author = "Richard S. Bird",
  year = "2001",
  journal = "Journal of Functional Programming",
  number = "4",
  pages = "411-424",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/Bird2001Maximum.pdf",
  volume = "11",
  doi = "10.1017/S0956796801004038",
}
@article{DBLP:journals/jfp/Bird01,
  title = "Unfolding Pointer Algorithms",
  author = "Richard S. Bird",
  year = "2001",
  journal = "Journal of Functional Programming",
  number = "3",
  pages = "347-358",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/Bird2001Unfolding.pdf",
  volume = "11",
  doi = "10.1017/S0956796801003914",
}
@inproceedings{MuBird2000:OnBuilding,
  title = "On Building Trees with Minimum Height, Relationally",
  author = "Shin-Cheng Mu and Richard Bird",
  year = "2000",
  booktitle = "First Asian Workshop on Programming Languages and Systems",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/MuBird2000OnBuilding.pdf",
}
@inproceedings{Bird*99:Program,
  title = "Program Optimisation, Naturally",
  author = "Richard Bird and Jeremy Gibbons and Geraint Jones",
  year = "2000",
  booktitle = "Millenial Perspectives in Computer Science",
  editor = "J. W. Davies and A. W. Roscoe and J. C. P. Woodcock",
  publisher = "Palgrave",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/naturally.ps.gz",
}
@article{BirdPaterson99:deBruijn,
  title = "de~{B}ruijn Notation as a Nested Datatype",
  author = "Richard S. Bird and Ross Paterson",
  year = "1999",
  journal = "Journal of Functional Programming",
  number = "1",
  pages = "77--91",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/BirdPaterson99DeBruijn.pdf",
  volume = "9",
  doi = "10.1017/S0956796899003366",
}
@article{BirdPaterson99:Generalised,
  title = "Generalised Folds for Nested Datatypes",
  author = "Richard Bird and Ross Paterson",
  year = "1999",
  journal = "Formal Aspects of Computing",
  pages = "200--222",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/BirdPaterson99Generalised.pdf",
  volume = "11",
}
@inproceedings{BirdMeertens98:Nested,
  title = "Nested Datatypes",
  author = "Richard S. Bird and Lambert Meertens",
  year = "1998",
  address = "Marstrand, Sweden",
  booktitle = "LNCS~1422: Proceedings of Mathematics of Program Construction",
  editor = "Johan Jeuring",
  month = "jun",
  pages = "52--67",
  publisher = "Springer-Verlag",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/BirdMeertens98Nested.pdf",
}
@book{Bird98:Introduction,
  title = "Introduction to Functional Programming Using {H}askell",
  author = "Richard S. Bird",
  year = "1998",
  isbn = "0134843460",
  publisher = "Prentice-Hall",
  url = "http://www.cs.ox.ac.uk/publications/books/functional/",
}
@article{DBLP:journals/jfp/Bird98,
  title = "Meertens' Number",
  author = "Richard S. Bird",
  year = "1998",
  journal = "Journal of Functional Programming",
  number = "1",
  pages = "83-88",
  volume = "8",
  doi = "10.1017/S0956796897002931",
}
@inproceedings{Bird97:Allegories,
  title = "Allegories as a Basis for Algorithmics",
  author = "Richard S. Bird",
  year = "1997",
  booktitle = "LNCS~1290: Category Theory and Computer Science",
  editor = "Eugenio Moggi and Guiseppe Rosolini",
  month = "sep",
  pages = "34--46",
  publisher = "Springer-Verlag",
  doi = "10.1007/BFb0026979",
}
@article{BirdRavelo97:On,
  title = "On Computing Representatives",
  author = "Richard S. Bird and Jes{\'u}s N. Ravelo",
  year = "1997",
  journal = "Information Processing Letters",
  pages = "1--7",
  volume = "63",
  doi = "10.1016/S0020-0190(97)00087-2",
}
@article{Bird*97:More,
  title = "More Haste, Less Speed: Lazy Versus Eager Evaluation",
  author = "Richard S. Bird and Geraint Jones and Oege de Moor",
  year = "1997",
  journal = "Journal of Functional Programming",
  number = "5",
  pages = "541--547",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/BirdJonesDeMoor1997More.pdf",
  volume = "7",
  doi = "10.1017/S0956796897002827",
}
@article{Bird97:OnBuilding,
  title = "On Building Trees with Minimum Height",
  author = "Richard S. Bird",
  year = "1997",
  journal = "Journal of Functional Programming",
  number = "4",
  pages = "441--445",
  volume = "7",
  doi = "10.1017/S0956796897002803",
}
@article{Bird97:OnMerging,
  title = "On Merging and Selection",
  author = "Richard S. Bird",
  year = "1997",
  journal = "Journal of Functional Programming",
  number = "3",
  pages = "349--354",
  volume = "7",
  doi = "10.1017/S0956796897002736",
}
@proceedings{DBLP:conf/alc/1997,
  title = "IFIP TC2 WG2.1 International Workshop on Algorithmic Languages and Calculi",
  year = "1997",
  editor = "Richard S. Bird and Lambert G. L. T. Meertens",
  isbn = "0-412-82050-1",
  publisher = "Chapman {\&} Hall",
  series = "IFIP Conference Proceedings",
  volume = "95",
}
@book{BirddeMoor96:Algebra,
  title = "The Algebra of Programming",
  author = "Richard Bird and Oege de Moor",
  year = "1996",
  isbn = "013507245X",
  publisher = "Prentice-Hall",
  url = "http://www.cs.ox.ac.uk/publications/books/algebra/",
}
@article{Bird*96:Generic,
  title = "Generic Functional Programming with Types and Relations",
  author = "Richard Bird and Oege de Moor and Paul Hoogendijk",
  year = "1996",
  journal = "Journal of Functional Programming",
  number = "1",
  pages = "1--28",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/BirdHoogendijkDeMoor1996Generic.pdf",
  volume = "6",
}
@article{Bird96:Functional,
  title = "Functional Algorithm Design",
  author = "Richard S. Bird",
  year = "1996",
  address = "Amsterdam, The Netherlands, The Netherlands",
  issn = "0167-6423",
  journal = "Science of Computer Programming",
  number = "1-3",
  pages = "15--31",
  publisher = "Elsevier North-Holland, Inc.",
  volume = "26",
  doi = "10.1016/0167-6423(95)00033-X",
}
@inproceedings{DBLP:conf/mpc/Bird95,
  title = "Functional Algorithm Design",
  author = "Richard S. Bird",
  year = "1995",
  booktitle = "Mathematics of Program Construction",
  isbn = "3-540-60117-1",
  pages = "2-17",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  volume = "947",
  doi = "10.1007/3-540-60117-1_2",
}
@incollection{aop-marktoberdorf,
  title = "The Algebra of Programming",
  author = "Richard Bird and Oege de Moor",
  year = "1994",
  booktitle = "Proceedings of the NATO Advanced Study Institute on Deductive Program Design",
  editor = "Manfred Broy",
  isbn = "3-540-60947-4",
  pages = "167-203",
  publisher = "Springer-Verlag",
  series = "NATO ASI series F",
  url = "http://dl.acm.org/citation.cfm?id=256116",
}
@unpublished{BirddeMoor94:Hybrid,
  title = "Hybrid Dynamic Programming",
  author = "Richard Bird and Oege de Moor",
  year = "1994",
  note = "Programming Research Group, Oxford",
}
@incollection{BirddeMoor93:Relational,
  title = "Relational Program Derivation and Context-Free Language Recognition",
  author = "Richard Bird and Oege de Moor",
  year = "1994",
  booktitle = "A Classical Mind: Essays in Honour of {C}.~{A}.~{R}.~{H}oare",
  chapter = "2",
  editor = "A. W. Roscoe",
  publisher = "Prentice-Hall",
}
@article{Bird93:Last,
  title = "The Last Tail",
  author = "R. S. Bird",
  year = "1993",
  journal = "Journal of Functional Programming",
  number = "1",
  pages = "117--122",
  volume = "3",
}
@article{BirddeMoor93:List,
  title = "List Partitions",
  author = "Richard S. Bird and Oege de Moor",
  year = "1993",
  journal = "Formal Aspects of Computing",
  pages = "61--78",
  volume = "5",
  doi = "10.1007/BF01211316",
}
@inproceedings{BirddeMoor93:Solving,
  title = "Solving Optimisation Problems with Catamorphisms",
  author = "Richard S. Bird and Oege de Moor",
  year = "1993",
  booktitle = "Mathematics of Program Construction",
  pages = "45--66",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/BirdDeMoor93Solving.pdf",
  volume = "669",
  doi = "10.1007/3-540-56625-2_7",
}
@inproceedings{BirddeMoor93:From,
  title = "From Dynamic Programming to Greedy Algorithms",
  author = "Richard S. Bird and Oege de Moor",
  year = "1993",
  booktitle = "IFIP TC2/WG2.1 State-of-the-Art Report on Formal Program Development",
  editor = "Bernhard M{\"o}ller and Helmut Partsch and Steve Schumann",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/BirdDeMoor93From.pdf",
  volume = "755",
  doi = "10.1007/3-540-57499-9_16",
}
@proceedings{DBLP:conf/mpc/1992,
  title = "Mathematics of Program Construction",
  year = "1993",
  editor = "Richard S. Bird and Carroll Morgan and Jim Woodcock",
  isbn = "3-540-56625-2",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  volume = "669",
  doi = "10.1007/3-540-56625-2",
}
@article{Bird92:Unravelling,
  title = "Unravelling Greedy Algorithms",
  author = "Richard S. Bird",
  year = "1992",
  journal = "Journal of Functional Programming",
  number = "3",
  pages = "375--385",
  volume = "2",
}
@article{Bird92:Two,
  title = "Two Greedy Algorithms",
  author = "Richard S. Bird",
  year = "1992",
  journal = "Journal of Functional Programming",
  number = "2",
  pages = "237--244",
  volume = "2",
}
@article{Bird92:Smallest,
  title = "The Smallest Upravel",
  author = "Richard S. Bird",
  year = "1992",
  journal = "Science of Computer Programming",
  pages = "281--292",
  volume = "18",
  doi = "10.1016/0167-6423(92)90020-C",
}
@article{Bird91:Minout,
  title = "The {Minout} Problem",
  author = "Richard S. Bird",
  year = "1991",
  journal = "Journal of Functional Programming",
  month = "jan",
  number = "1",
  pages = "121--124",
  volume = "1",
}
@article{DBLP:journals/jfp/Bird91a,
  title = "On Removing Duplicates",
  author = "Richard S. Bird",
  year = "1991",
  journal = "Journal of Functional Programming",
  number = "2",
  pages = "235-243",
  volume = "1",
}
@inproceedings{Bird91:Knuths,
  title = "Knuth's Problem",
  author = "Richard S. Bird",
  year = "1991",
  booktitle = "IFIP TC2/WG2.1 Working Conference on Constructing Programs from Specifications",
  editor = "B. M{\"o}ller",
  pages = "1--8",
  publisher = "North-Holland",
}
@incollection{Bird90:Small,
  title = "Small Specification Exercises",
  author = "Richard S. Bird",
  year = "1990",
  booktitle = "Beauty is our Business",
  editor = "W. H. J. Feijen and A. J. M. van Gasteren and D. Gries and J. Misra",
  pages = "36--43",
  publisher = "Springer-Verlag",
}
@incollection{Bird90:Calculus,
  title = "A Calculus of Functions for Program Derivation",
  author = "Richard S. Bird",
  year = "1990",
  booktitle = "Research Topics in Functional Programming",
  editor = "David A. Turner",
  note = "Also available as Technical Monograph PRG-64, from the Programming Research Group, Oxford University",
  organization = "University of Texas at Austin",
  publisher = "Addison-Wesley",
}
@article{Bird*89:KMP,
  title = "Formal Derivation of a Pattern Matching Algorithm",
  author = "Richard S. Bird and Jeremy Gibbons and Geraint Jones",
  year = "1989",
  journal = "Science of Computer Programming",
  month = "jul",
  number = "2",
  pages = "93--104",
  volume = "12",
  doi = "10.1016/0167-6423(89)90036-1",
}
@article{Bird89:Algebraic,
  title = "Algebraic Identities for Program Calculation",
  author = "Richard S. Bird",
  year = "1989",
  journal = "Computer Journal",
  month = "apr",
  number = "2",
  pages = "122--126",
  volume = "32",
  doi = "10.1093/comjnl/32.2.122",
}
@book{BirdWadler88:Introduction,
  title = "An Introduction to Functional Programming",
  author = "Richard S. Bird and Philip L. Wadler",
  year = "1988",
  isbn = "0-13-484189-1",
  publisher = "Prentice-Hall",
}
@inproceedings{Bird88:Constructive,
  title = "Lectures on Constructive Functional Programming",
  author = "Richard S. Bird",
  year = "1988",
  booktitle = "Constructive Methods in Computer Science",
  editor = "Manfred Broy",
  note = "NATO ASI Series~F Volume~55. Also available as Technical Monograph PRG-69, from the Programming Research Group, Oxford University",
  pages = "151--218",
  publisher = "Springer-Verlag",
}
@article{BirdHughes87:Alpha-Beta,
  title = "The Alpha-Beta Algorithm: {An} Exercise in Program Transformation",
  author = "Richard S. Bird and John Hughes",
  year = "1987",
  journal = "Information Processing Letters",
  month = "jan",
  number = "1",
  pages = "53--57",
  volume = "24",
  doi = "10.1016/0020-0190(87)90198-0",
}
@article{Bird87:Supercombinator,
  title = "A Formal Development of an Efficient Supercombinator Compiler",
  author = "R. S. Bird",
  year = "1987",
  journal = "Science of Computer Programming",
  pages = "113--137",
  volume = "8",
  doi = "10.1016/0167-6423(87)90017-7",
}
@incollection{BirdMeertens87:Two,
  title = "Two Exercises Found In a Book on Algorithmics",
  author = "Richard S. Bird and Lambert Meertens",
  year = "1987",
  booktitle = "Program Specification and Transformation",
  editor = "Lambert Meertens",
  pages = "451--457",
  publisher = "North-Holland",
}
@incollection{Bird87:Theory,
  title = "An Introduction to the Theory of Lists",
  author = "Richard S. Bird",
  year = "1987",
  booktitle = "Logic of Programming and Calculi of Discrete Design",
  editor = "M. Broy",
  note = "NATO ASI Series~F Volume~36. Also available as Technical Monograph PRG-56, from the Programming Research Group, Oxford University",
  pages = "3--42",
  publisher = "Springer-Verlag",
}
@article{Bird86:Paragraph,
  title = "Transformational Programming and the Paragraph Problem",
  author = "Richard S. Bird",
  year = "1986",
  journal = "Science of Computer Programming",
  pages = "159--189",
  volume = "6",
  doi = "10.1016/0167-6423(86)90023-7",
}
@article{Bird85:Promotion,
  title = "Addendum to ``{T}he Promotion and Accumulation Strategies in Transformational Programming''",
  author = "Richard S. Bird",
  year = "1985",
  journal = "ACM Transactions on Programming Languages and Systems",
  month = "jul",
  number = "3",
  pages = "490--492",
  volume = "7",
}
@article{Bird84:Promotion,
  title = "The Promotion and Accumulation Strategies in Transformational Programming",
  author = "Richard S. Bird",
  year = "1984",
  journal = "ACM Transactions on Programming Languages and Systems",
  month = "oct",
  note = "See also \cite{Bird85:Promotion}",
  number = "4",
  pages = "487--504",
  volume = "6",
  doi = "10.1145/1780.1781",
}
@article{Bird84:Using,
  title = "Using Circular Programs to Eliminate Multiple Traversals of Data",
  author = "Richard S. Bird",
  year = "1984",
  journal = "Acta Informatica",
  pages = "239--250",
  volume = "21",
  doi = "10.1007/BF00264249",
}
@article{DBLP:journals/csur/Bird81,
  title = "Surveyor's Forum: A Recurring Bug",
  author = "Richard S. Bird",
  year = "1981",
  journal = "ACM Computing Surveys",
  number = "2",
  pages = "243",
  volume = "13",
  doi = "10.1145/356842.356848",
}
@article{Bird81:Joggers,
  title = "The Jogger's Problem",
  author = "Richard S. Bird",
  year = "1981",
  journal = "Information Processing Letters",
  number = "3",
  pages = "114--117",
  volume = "13",
  doi = "10.1016/0020-0190(81)90122-8",
}
@article{Bird80:Tabulation,
  title = "Tabulation Techniques for Recursive Programs",
  author = "Richard S. Bird",
  year = "1980",
  journal = "ACM Computing Surveys",
  month = "dec",
  note = "See \cite{DBLP:journals/csur/Bird81}",
  number = "4",
  pages = "403--417",
  volume = "12",
  doi = "10.1145/356827.356831",
}
@article{Bird79:Recursion,
  title = "Recursion Elimination with Variable Parameters",
  author = "Richard S. Bird",
  year = "1979",
  journal = "Computer Journal",
  number = "2",
  pages = "151--154",
  volume = "22",
  doi = "10.1093/comjnl/22.2.151",
}
@article{Bird77:Improving,
  title = "Improving Programs by the Introduction of Recursion",
  author = "Richard S. Bird",
  year = "1977",
  journal = "Communications of the ACM",
  month = "nov",
  number = "11",
  pages = "856--863",
  volume = "20",
  doi = "10.1145/359863.359889",
}
@article{Bird77:Two,
  title = "Two-Dimensional Pattern Matching",
  author = "Richard S. Bird",
  year = "1977",
  journal = "Information Processing Letters",
  number = "5",
  pages = "168--170",
  volume = "6",
  doi = "10.1016/0020-0190(77)90017-5",
}
@article{Bird77:Notes,
  title = "Notes on Recursion Elimination",
  author = "Richard S. Bird",
  year = "1977",
  journal = "Communications of the ACM",
  number = "6",
  pages = "434--439",
  volume = "20",
  doi = "10.1145/359605.359630",
}
@book{Bird76:Programs,
  title = "Programs and Machines",
  author = "Richard Bird",
  year = "1976",
  isbn = "0471016500",
  publisher = "Wiley",
}
@article{Bird75:Non,
  title = "Non Recursive Functionals",
  author = "Richard Bird",
  year = "1975",
  journal = "Zeitschrift f{\"u}r mathematische {L}ogik und {G}rundlagen der {M}athematik",
  pages = "41--46",
  volume = "21",
  doi = "10.1002/malq.19750210105",
}
@article{Bird74:Speeding,
  title = "Speeding Up Programs",
  author = "Richard S. Bird",
  year = "1974",
  journal = "Computer Journal",
  number = "4",
  pages = "337--339",
  volume = "17",
}
@article{Bird74:On,
  title = "On Transformations of Programs",
  author = "Richard Bird",
  year = "1974",
  journal = "Journal of Computer and System Sciences",
  pages = "22-35",
  volume = "8",
}
@phdthesis{bird-phd,
  title = "Computational Complexity on Register Machines",
  author = "Richard Simpson Bird",
  year = "1973",
  institution = "Institute of Computer Science, University of London",
  month = "October",
  url = "http://hdl.handle.net/10044/1/20651",
}
@article{Bird73:Note,
  title = "A Note on Definition by Cases",
  author = "Richard Bird",
  year = "1973",
  journal = "Zeitschrift f{\"u}r mathematische {L}ogik und {G}rundlagen der {M}athematik",
  pages = "207--208",
  volume = "19",
  doi = "10.1002/malq.19730191304",
}
@article{Bird72:Integers,
  title = "Integers with Given Initial Digits",
  author = "Richard Bird",
  year = "1972",
  journal = "American Mathematical Monthly",
  pages = "367-370",
  url = "https://www.jstor.org/stable/2978087",
  volume = "79",
  doi = "10.2307/2978087",
}