Andrew Farmer
My interests include programming language design in general and specifically the compilation and optimization of functional languages. I am currently working on HERMIT, a GHC plugin for transforming Core Language programs. I am interested in making HERMIT useful for prototyping and debugging GHC optimizations. In the past I worked on testing and debugging tools for the Kansas Lava project.
I also created Scotty, a small framework for specifying RESTful web services.
Email: anfarmer at fb dot com
Personal webpage: http://andrewfarmer.name
Github: https://github.com/xich
Publications
A. Farmer, HERMIT: Mechanized Reasoning during Compilation in the Glasgow Haskell Compiler. PhD thesis, The University of Kansas, April 2015.
M. D. Adams, A. Farmer, and J. P. Magalhães, “Optimizing SYB Traversals Is Easy!,” Science of Computer Programming, vol. 112, Part 2, pp. 170 – 193, 2015. Selected and extended papers from Partial Evaluation and Program Manipulation 2014.
A. Farmer, N. Sculthorpe, and A. Gill, “Reasoning with the HERMIT: Tool support for equational reasoning on GHC Core programs,” in Proceedings of the 8th ACM SIGPLAN Symposium on Haskell, Haskell 2015, (New York, NY, USA), pp. 23–34, ACM, 2015.
A. Gill, N. Sculthorpe, J. Dawson, A. Eskilson, A. Farmer, M. Grebe, J. Rosenbluth, R. Scott, and J. Stanton, “The remote monad design pattern,” in Proceedings of the 8th ACM SIGPLAN Symposium on Haskell, (New York, NY, USA), pp. 59–70, ACM, 2015.
M. D. Adams, A. Farmer, and J. P. Magalhães, “Optimizing SYB Is Easy!,” in Proceedings of the 2014 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM ’14, ACM, 2014. Won Best Paper Award.
A. Farmer, C. Höner zu Siederdissen, and A. Gill, “The HERMIT in the Stream,” in Proceedings of the 2014 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM ’14, ACM, 2014.
N. Sculthorpe, A. Farmer, and A. Gill, “The HERMIT in the tree: Mechanizing program transformations in the GHC core language,” in Proceedings of the 24th Symposium on Implementation and Application of Functional Languages, vol. 8241 of Lecture Notes in Computer Science, pp. 86–103, 2013.
A. Gill, T. Bull, A. Farmer, G. Kimmell, and E. Komp, “Types and associated type families for hardware simulation and synthesis: The internals and externals of Kansas Lava,” Journal of Higher-Order and Symbolic Computation, pp. 1–20, 2013.
A. Farmer and A. Gill, “Haskell DSLs for interactive web services,” in 1st International Workshop on Cross-model Language Design and Implementation, Sep 2012.
A. Farmer, A. Gill, E. Komp, and N. Sculthorpe, “The HERMIT in the machine: A plugin for the interactive transformation of GHC core language programs,” in Proceedings of the ACM SIGPLAN Haskell Symposium, Haskell ’12, pp. 1–12, ACM, 2012.
A. Gill, T. Bull, D. DePardo, A. Farmer, E. Komp, and E. Perrins, “Using functional programming to generate an LDPC forward error corrector,” in Proceedings of the IEEE 19th Annual International Symposium on Field-Programmable Custom Computing Machines, FCCM ’11, pp. 133–140, IEEE Computer Society, May 2011.
A. Gill and A. Farmer, “Deriving an efficient FPGA implementation of a low density parity check forward error corrector,” in Proceedings of the 16th ACM SIGPLAN international conference on Functional programming, ICFP ’11, pp. 209–220, ACM, Sep 2011.
A. Farmer, G. Kimmell, and A. Gill, “What’s the matter with Kansas Lava?,” in Post-Proceedings of Trends in Functional Programming, Springer-Verlag, LNCS 6546, May 2010.
A. Gill, T. Bull, A. Farmer, G. Kimmell, and E. Komp, “Types and type families for hardware simulation and synthesis: The internals and externals of Kansas Lava,” in Post-Proceedings of Trends in Functional Programming, vol. 6546 of LNCS, Springer-Verlag, May 2010.
Presentations
- Reasoning with the HERMIT: Tool Support for Equational Reasoning on GHC Core Programs. 2015 Haskell Symposium. Vancouver, Canada. September 2015. Slides Video
- Reasoning with the HERMIT: Tool Support for Equational Reasoning on GHC Core Programs. UNSW Programming Languages and Systems Group. Sydney, Australia. June 2015. Slides
- HERMIT: Mechanized Reasoning during Compilation in the Glasgow Haskell Compiler. Dissertation Defense. Lawrence, Kansas. April 2015. Slides
- The HERMIT in the Stream. PEPM 2014. San Diego, California. January 2014. Slides
- RESTful Web Services with Haskell. Lambda Lounge KC. Fairway, Kansas. November 2013. Slides Video
- Prototyping GHC Optimizations with HERMIT. 2013 Haskell Implementors Workshop. Boston, Massachusetts. September 2013. Slides
- A Language for Domain-Specific Optimizations in Haskell. Symposium on Trends in Functional Programming (TFP ‘13). Provo, Utah. May 2013. Slides
- Haskell DSLs for Interactive Web Services. Janrain. Portland, Oregon. April 2013. Slides
- Introducing HERMIT: A Plugin for Transforming GHC Core Language Programs. Galois Tech Talk. Portland, Oregon. April 2013. Slides
- Towards a HERMIT-based DSL for Specifying Optimizations in GHC. Portland State PL Club. Portland, Oregon. February 2013. Slides
- Introducing HERMIT: A Plugin for Transforming GHC Core Language Programs. Portland State PL Club. Portland, Oregon. January 2013. Slides
- Haskell DSLs for Interactive Web Services. First International Workshop on Cross-model Language Design and Implementation (XLDI ‘12), Copenhagen, Denmark. September 2012. Slides Video
- HERMIT: A Plugin for Transforming GHC Core Language Programs. 2012 Oregon Programming Languages Summer School, student talk session, Eugene, Oregon. July 2012. Slides
- The HERMIT Equational Reasoning Framework. ITTC Industry Advisory Board Poster Session, Lawrence, Kansas. June 2012. Winner of Student Poster Competition.
- KURE-ing Reverse. 2011 Symposium on Implementation and Application of Functional Languages, Lawrence, Kansas. October 2011.
- Kansas Lava: Using and Abusing GHC’s Type Extensions. 2010 Haskell Implementors Workshop, Baltimore, Maryland. October 2010. Slides, Video.
- Generating Implementations of Error Correcting Codes using Kansas Lava. Portland State University, Portland, Oregon. July 2010.
- Debugging the Internals of Kansas Lava. ITTC Industry Advisory Board Poster Session, Lawrence, Kansas. June 2010.
- What’s the Matter with Kansas Lava? Symposium on Trends in Functional Programming, Norman, Oklahoma. May 2010.