Dominic Orchard
Research Associate in the Digital Technology Group working on programming language approaches to computational science with Andrew Rice. I am part of the NAPS project (New Approaches to Programming in the Sciences).

Research interests
I was previously a member of the Cambridge Programming Research Group (part of the Programming, Logic and Semantics Group), where I did my PhD. (new) I am coorganising and cochairing the Workshop on Programming Language Evolution (PLE14) colocated with ECOOP 2014 this year. Submission deadline April 14th! 
News
March 2014
I attended the Software Sustainability Institute's Collaborations Workshop 2014 (CW14), Oxford.
I wrote a book review of Computational Semantics with Functional Programming, by Jan van Eijck and Christina Unger for JFP. Preprint version available here.
I gave a talk at Fun in the Afternoon, hosted at Facebook
in London, on indexed monads.
Code and slides are available.
Andy Rice and I have had our paper "A computational science agenda for programming language research" accepted at ICCS'14 [preprint PDF].
February 2014
Raoul GabrielUrma, Alan Mycroft,
and I are organising the Workshop on Programming
Language Evolution 2014, colocated with ECOOP 2014 this year. Submission deadline April 14th.
I am on the Artefact Evaluation Committee (AEC) for ECOOP 2014.
October 2013
I attended SPLASH 2013 in
Indianapolis, presenting at WRT'13
[PDF].
September 2013
Andy Rice and I have
had our paper Upgrading Fortran source code using automatic refactoring
accepted to WRT'13 at
SPLASH 2013. [PDF]
Attended ICFP 2013 and presented my paper
Automatic SIMD Vectorization for Haskell (joint work
with Petersen and Glew). (talk also given
at the Computer Laboratory).
July 2013
Ohad Kammar, Alan Mycroft, and I are organising
a summer course on Dependently typed metaprogramming (in Agda),
here at the Computer Laboratory,
which will be given by Conor McBride of the University of Strathclyde.
Details and sign up here.
I attended ICALP 2013 in Riga, Latvia.
June 2013
Leaf Petersen, Neal Glew, and I have had our paper Automatic SIMD Vectorization for Haskell
accepted to ICFP 2013. Preprint version to appear soon (or email me).
[Older news items]
Publications

(March '14)
A computational science agenda for programming
language research
Dominic Orchard, Andrew Rice.
to appear at International Conference on Computational Science, 2014 [preprint PDF]

The semantic marriage of monads and effects (extended abstract)
Dominic Orchard, Tomas Petricek, Alan Mycroft, 2013, [arXiv:1401.5391] (local PDF) 
Upgrading Fortran source code using automatic refactoring
Dominic Orchard, Andrew Rice.
WRT'13 (ACM Workshop on Refactoring Tools 2013, colocated with SPLASH 2013) [PDF]

Automatic SIMD Vectorization for Haskell

Coeffects: Unified static analysis of contextdependence

A Notation for Comonads
 The four Rs of programming language design
 Efficient and Correct Stencil Computation via Pattern Matching and Static Typing
Dominic Orchard and Alan Mycroft
IFIP Working Conference on DomainSpecific Languages, Bordeaux, September 2011 (DSL 2011')
[PDF at the arXiv] [implementation]  Haskell Type Constraints Unleashed
Dominic Orchard and Tom Schrijvers
10^{th} International Symposium on Functional and Logic Programming, FLOPS 2010, Sendai, Japan, April 2010
[On SpringerLink] [Author's Copy with corrections]  [Accompanying technical report]  [Prototype implementation]  Ypnos : Declarative Parallel Structured Grid Programming
Dominic Orchard, Max Bolingbroke, and Alan Mycroft
5th ACM SIGPLAN Workshop on Declarative Aspects of Multicore Programming, DAMP '10. Madrid, Spain, 2010.
[PDF + corrections] [ACM Portal]  muCell  Interdisciplinary Research in Modelling and Simulation of Cell Spatial Behaviour
Dominic Orchard, Jonathan Gover, Lewis Herrington, James Lohr, Duncan Stead, Cathy Young, Sara Kalvala
Reinvention: a Journal of Undergraduate Research, Volume 2, Issue 1, April 2009
[Online version]  [PDF version]  [Shortened PDF version]  Integrating Lucid's Declarative Dataflow Paradigm into ObjectOrientation
Dominic Orchard and Steve Matthews
Mathematics in Computer Science, 2(1), November 2008
[On SpringerLink]
Old drafts and notes (some may be resurrected someday)

Categorical Programming for Data Types with Restricted Parametericity
Dominic Orchard and Alan Mycroft.
(Rejected from the TFP 2012 postproceedings) [Draft PDF].
(An earlier version appeared in the preproceedings of TFP 2012 as "Mathematical Structures for Data Types with Restricted Parametricity".)

Should I use a Monad or a Comonad?
Articles

Book review: Computational Semantics with Functional Programming
by Jan van Eijck and Christina Unger
Dominic Orchard, Journal of Functional Programming (April, 2014) [preprint PDF] [JFP online]

The Unreasonable Effectiveness of (Basic Secondary School) Mathematics
Dominic Orchard, Jesus College Annual Report 2012, (p.2728) [magainze PDF] (has corrupted figure on p.28) [article PDF]
Talks
 26^{th} March 2014  Separating concerns for better reproducibility (lightning talk), Software Sustainibility Institute, Collaborations Workshop 2014, Oxford, UK
 12^{th} March 2014  Fun with Indexed Monads, Fun in the Afternoon, hosted at Facebook, London [Slides and code]
 12^{th} November 2013  Upgrading Fortran source code using automatic refactoring and lightweight verification extensions, Cambridge Centre for Climate Science, Department of Geography, University of Cambridge
 27^{th} October 2013  Upgrading Fortran soure code using automatic refactoring, Workshop on Refactoring Tools (WRT'13) at SPLASH 2013, Indianapolis, USA [slides]
 21^{st} October 2013  Upgrading Fortran soure code using automatic refactoring, DTG Seminar, Computer Laboratory, University of Cambridge, UK
 25^{th} September 2013  Automatic SIMD vectorization for Haskell ICFP (International Conference on Functional Programming) 2013, Boston, MA, USA [slides]
 17^{th} September 2013  Automatic SIMD vectorization for Haskell CPRG Seminar, Computer Laboratory, Cambridge, UK [slides]
 13^{th} November 2012  Programs in context  Intelligent and Adaptive Systems Research Group, Department of Computer Science, University of Warwick [slides]
 5^{th} November 2012  Programs in context  Digital Technology Group Seminar, Computer Laboratory, Cambridge
 30^{st} August 2012  A Notation for Comonads  Implementation and Application of Functional Languages 2012 (IFL'12), Oxford, UK [slides] [video].
 22^{nd} June 2012  A Notation for Comonads, Context, and Intensional Programming  Algebra of Programming informal seminar, Department of Computer Science, Oxford, UK
 13^{th} June 2012  Mathematical Structures for Data Types with Restricted Parametericity, Trends in Functional Programming 2012, St. Andrews, Scotland [slides]
 8^{th} June 2012  Mathematical Structures for Data Types with Restricted Parametericity, CPRG Seminar, Computer Laboratory, Cambridge
 27^{th} April 2012  The Unreasonable Effectivness of (High School) Mathematics, 5^{th} Annual Jesus College Graduate Conference, Cambridge [slides] [video]
 23^{rd} Februrary 2012  Coeffect systems: capturing contextdependence, University of Strathclyde, Mathematically Structured Programming Group Seminar, Glasgow (slides on request)
 27^{th} October 2011  The Four Rs of Programming Language Design, Onward! Essay Presentation, SPLASH 2011, Portland, Oregon, USA.
 7^{th} October 2011  Coeffect Systems and Typing  (with Tomas Petricek), CPRG Seminar, Computer Laboratory, Cambridge [slides]
 7^{th} September 2011  Efficient and Correct Stencil Computations via Pattern Matching and Type Checking  IFIP Working Conference on DSLs, DSL 2011, Bordeaux, France [slides]
 2^{nd} September 2011  Efficient and Correct Stencil Computations via Pattern Matching and Type Checking  CPRG Seminar, Computer Laboratory, Cambridge
 2^{nd} June 2011  Programming with Comonads and Codo Notation  Tallinn University of Technology, Institute of Cybernetics, Estonia [slides]
 20^{th} May 2011  When Monads and Comonads Overlap  CPRG Seminar, Computer Laboratory, Cambridge
 13^{th} May 2011  Programming with Comonads and Codo Notation  CPRG Seminar, Computer Laboratory, Cambridge
 26^{th} November 2010  repeat lecture  Mathematically Structuring Programming Languages  Research Students Lecture Course, Cambridge, UK. [slides, notes, and examples]
 20^{th} August 2010  Rethinking Language Design for Parallelization, Intel Labs, Santa Clara, California, USA [slides]
 2^{nd} June 2010  Programming with monads combined with comonads  ICFP PC Workshop 2010, Microsoft Research, Cambridge, UK [slides]
 14^{th} May 2010  lecture  Mathematically Structuring Programming Languages  Research Students Lecture Course, Cambridge, UK. [slides, notes, and examples]
 21^{st} April 2010  Haskell Type Constraints Unleashed  FLOPS 2010, Sendai, Japan (given as a video talk due to continued airflight restrictions in the UK at the time) [slides] [video]
 17^{th} February 2010  Haskell Type Constraints Unleashed  Fun in the Afternoon, Standard Chartered Bank, London [slides]
 12^{th} February 2010  Haskell Type Constraints Unleashed  CPRG Seminar, Computer Laboratory, Cambridge
 19^{th} January 2010  Ypnos: Declarative, Parallel Structured Grid Programming, DAMP '10, Madrid, Spain [slides]
 20^{th} November 2009  Ypnos: Declarative, Parallel Structured Grid Programming, CPRG Seminar, Computer Laboratory, Cambridge [slides]
 1^{st} May 2009  Programming Language Design, Jesus College Graduate Symposium '09 [slides]
 7^{th} April 2009  Lucian: Dataflow and Object Orientation  BCTCS '09, University of Warwick, UK [slides] [abstract]
 13^{th} March 2009  Interoperation of Lucid's Dataflow paradigm and Objectorientation with a Coalgebraic Semantics  CPRG Seminar, Computer Laboratory, Cambridge
Commitees
 PLE 2014 (Programming Language Evolution) Cochair and Program Commitee
 ECOOP 2014 Artefact Evaluation Commitee
 IFL 2013 (Implementation and Application of Functional Languages) Program Commitee
Teaching
I supervise Part II (final year) and Part III (masters) projects. I have written
down some proposals for potential projects.
Please get in touch if you are interested ni me supervising your project.
Previous projects supervised:
 Distributed Programming with Rebindable Resources (201314)
 Implementing the Codo Syntax for Comonads in GHC (201213)
 GPU accelerating the Ypnos programming language (201213)
 VisualLucid IDE  A visual approach to dataflow programming (201112)
 Accessing Standard ML Constructs From Java Across Language Domains (201112)
 Parallelisation of Java for Graphics Processors  Peter Calvert (200910)
 Reconsidering Lucid  a modern approach  Jonas Kaiser (200910)
I have supervised, or am currently supervising, the following courses:
 Denotational Semantics (2014)
 Logic and Proof (201314)
 Semantics (Michaelmas and Lent Term, 20092014)
 Concepts in Programming Languages (Easter term, 20102011)
 Optimising Compilers (Michaelmas term, 20082009, 201314)
 Extra explanatory notes for the constraint based analysis.
 I also contributed to the current supervision material.
 Comparative Architectures (Lent Term, 2009)
I gave a lecture entitled "Mathematically Structuring Programming Languages" as part of the "Current Research Topics" course at the Cambridge Computer Laboratory in May, 2010 and again in November, 2010, as part of a series of lectures given by students in the CPRG (lectures note, slides, errata, and examples).
Academic
I received my MEng in Computer Science in July 2008 from the Department of Computer Science, Universiy of Warwick.