├── papers ├── .htaccess ├── sbe-hs10.pdf ├── tacc-hs09.pdf ├── chsc2-icfp11.pdf ├── tacc-talk-cprg09.pdf ├── sbe-talk-hs10-static.pdf ├── tacc-talk-hs09-static.pdf ├── sql-like-list-comprehensions.pdf └── termination-combinators-hs11.pdf ├── images └── portrait.jpg ├── files ├── max-bolingbroke-cv.doc ├── max-bolingbroke-cv.pdf └── meta2010-presentation.pdf ├── .gitignore ├── talks ├── optimising-functional-programming-languages.pdf └── optimising-functional-programming-languages.zip ├── styles └── main.css └── index.html /papers/.htaccess: -------------------------------------------------------------------------------- 1 | Options -Indexes 2 | -------------------------------------------------------------------------------- /images/portrait.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cl-website/master/images/portrait.jpg -------------------------------------------------------------------------------- /papers/sbe-hs10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cl-website/master/papers/sbe-hs10.pdf -------------------------------------------------------------------------------- /papers/tacc-hs09.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cl-website/master/papers/tacc-hs09.pdf -------------------------------------------------------------------------------- /papers/chsc2-icfp11.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cl-website/master/papers/chsc2-icfp11.pdf -------------------------------------------------------------------------------- /papers/tacc-talk-cprg09.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cl-website/master/papers/tacc-talk-cprg09.pdf -------------------------------------------------------------------------------- /files/max-bolingbroke-cv.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cl-website/master/files/max-bolingbroke-cv.doc -------------------------------------------------------------------------------- /files/max-bolingbroke-cv.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cl-website/master/files/max-bolingbroke-cv.pdf -------------------------------------------------------------------------------- /files/meta2010-presentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cl-website/master/files/meta2010-presentation.pdf -------------------------------------------------------------------------------- /papers/sbe-talk-hs10-static.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cl-website/master/papers/sbe-talk-hs10-static.pdf -------------------------------------------------------------------------------- /papers/tacc-talk-hs09-static.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cl-website/master/papers/tacc-talk-hs09-static.pdf -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OS junk 2 | .DS_Store 3 | Thumbs.db 4 | 5 | # Backups 6 | ._* 7 | 8 | # Nested repos 9 | git/ 10 | darcs/ 11 | 12 | -------------------------------------------------------------------------------- /papers/sql-like-list-comprehensions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cl-website/master/papers/sql-like-list-comprehensions.pdf -------------------------------------------------------------------------------- /papers/termination-combinators-hs11.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cl-website/master/papers/termination-combinators-hs11.pdf -------------------------------------------------------------------------------- /talks/optimising-functional-programming-languages.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cl-website/master/talks/optimising-functional-programming-languages.pdf -------------------------------------------------------------------------------- /talks/optimising-functional-programming-languages.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batterseapower/cl-website/master/talks/optimising-functional-programming-languages.zip -------------------------------------------------------------------------------- /styles/main.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin-top: 1.0em; 3 | background-color: #eee; 4 | font-family: "gill sans", "helvetica"; 5 | } 6 | h1 { 7 | font-size: 2.5em; 8 | color: #333; 9 | margin-bottom: 3px; 10 | } 11 | h2 { 12 | font-size: 1.3em; 13 | color: #333; 14 | } 15 | .talk .paper { 16 | font-size: 1.0em; 17 | font-weight: bold; 18 | margin-bottom: 2px; 19 | } 20 | a { 21 | color: #111; 22 | } 23 | .contact-method { 24 | font-weight: bold; 25 | } 26 | .paper-formalities { 27 | font-size: 1.0em; 28 | margin: 0 0 0 20px; 29 | font-style: italic; 30 | } 31 | .talk-description .paper-description { 32 | font-size: 1.0em; 33 | margin: 0 0 0 20px; 34 | } 35 | .interest { 36 | font-weight: bold; 37 | } 38 | img { 39 | border: 0px; 40 | } 41 | .portrait { 42 | float: right; 43 | margin: 0 0 100px 0; /* 100px hack to make it look like the image has it's own column */ 44 | padding: 0 0 0 0; 45 | } 46 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 3 | 4 |
5 |
22 |
23 | PhD candidate at the Computer Lab, University of Cambridge.
25 | 26 |I have now submitted my thesis and have essentially left Cambridge. Follow me on Twitter if you want to know what I'm up to nowadays.
27 | 28 || Email: | 38 |(second-letter-of-the-alphabet)atterseapower@hotmail.com |
39 |
| Mobile: | 42 |(+44) 07891 915321 |
43 |
Termination combinators forever
49 |50 | with Simon Peyton Jones and Dimitrios Vytiniotis, June 2011. Submitted to the Haskell Symposium '11. 51 |
52 |53 | Describes a combinator library for building well-quasi-orders, which are useful for constructing termination tests for symbolic methods. We show how the classic Tree Theorem is related to data types presented as functor fixed points, and describe how the library can optimise the implementation of the constructed well-quasi-orders. 54 |
55 | 56 |Improving supercompilation: tag-bags, rollback, speculation, normalisation, and generalisation
57 |58 | with Simon Peyton Jones, March 2011. Rejected by ICFP '11. 59 |
60 |61 | Describes a number of ways to improve our supercompilation algorithm to make it generate even faster programs, and do so more robustly. 62 |
63 | 64 |Supercompilation by Evaluation [Slides]
65 |66 | with Simon Peyton Jones, July 2010. Presented at the Haskell Symposium '10. 67 |
68 |69 | Reformulates the supercompilation algorithm to explicitly be in terms of an evaluator, and extends call-by-need supercompilation to recursive let bindings. 70 |
71 | 72 |Ypnos: Declarative, Parallel Structured Grid Programming [Errata]
73 |74 | with Dominic Orchard and Alan Mycroft, May 2009. Presented at the workshop on Declarative Aspects of Multicore Programming '10. 75 |
76 |77 | A declarative domain-specific language for expressing structured grid computations in a format 78 | that the compiler can reliably generate efficient code from. 79 |
80 | 81 |Types are Calling Conventions [Discuss] [Slides]
82 |83 | with Simon Peyton Jones, May 2009. Presented at the Haskell Symposium '09. 84 |
85 |86 | Describes a nice little intermediate language for compiling a lazy functional programming language, and some optimisations we can express with it. 87 |
88 | 89 |Adding SQL-Style List Comprehensions to the Glasgow Haskell Compiler
90 |91 | supervised by Simon Peyton Jones, 2007-2008. Undergraduate dissertation for the Computer Science Tripos Part II. 92 |
93 |94 | Description of my implementation of an extension of list comprehensions with SQL-like features such as grouping and sorting in GHC, which are also described in the GHC user's guide 95 | and the paper I based my implementation on. 96 |
97 | 98 |Optimising Functional Programming Languages [Keynote Source File]
100 |101 | An overview of deforestation techniques for functional programming languages. Part of the Current Research Topics lecture series 2010. 102 |
103 | 104 |