Computer Laboratory

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).

Office:SN15
Tel:+44(0)1223 763649
Email:dominic.orchard at cl.cam.ac.uk
Address: University of Cambridge
Computer Laboratory
15 JJ Thomson Avenue
Cambridge CB3 0FD
College: Queens' College (from October 2014 I will be a Teaching Associate at Queens')

Research interests

  • Programming language design and semantics
  • Mathematically structured programming
  • Effect and coeffect systems
  • Embedded domain-specific languages (esp. for parallelisation)
  • Applying programming language research to computational science

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 co-organising and co-chairing 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 Gabriel-Urma, 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. Pre-print version to appear soon (or e-mail 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]
    Show abstract >>>
  •   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]
    Show abstract >>>
  •   Automatic SIMD Vectorization for Haskell
    Leaf Petersen, Dominic Orchard, Neal Glew.
    Proceedings of ICFP 2013 (Boston, MA, USA) [PDF]
    Show abstract >>>
  •   Coeffects: Unified static analysis of context-dependence
    Tomas Petricek, Dominic Orchard, and Alan Mycroft.
    Proceedings of ICALP'13 (Riga, Latvia) [PDF]
    Show abstract >>>
  •   A Notation for Comonads
    Dominic Orchard and Alan Mycroft.
    (to appear) LNCS post-proceedings of IFL 2012. [PDF] [code]
    Show abstract >>>
  • The four Rs of programming language design
    Dominic Orchard
    Addendum to ONWARD '11 Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software. 
    [PDF] [@ACM DL]
  •  Efficient and Correct Stencil Computation via Pattern Matching and Static Typing
    Dominic Orchard and Alan Mycroft
    IFIP Working Conference on Domain-Specific Languages, Bordeaux, September 2011 (DSL 2011')
    [PDF at the arXiv] [implementation]
    Show abstract >>>
  •  Haskell Type Constraints Unleashed
    Dominic Orchard and Tom Schrijvers
    10th 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]
    Show abstract >>>
  •  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]
    Show abstract >>>
  • 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 Object-Orientation
    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 post-proceedings) [Draft PDF].
    (An earlier version appeared in the pre-proceedings of TFP 2012 as "Mathematical Structures for Data Types with Restricted Parametricity".)
    Show abstract >>>
  •   Should I use a Monad or a Comonad?
    Dominic Orchard. Unpublished work in progress (Dec 2011). [draft]
    Show details >>>

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.27-28) [magainze PDF] (has corrupted figure on p.28) [article PDF]

Talks

  • 26th March 2014 - Separating concerns for better reproducibility (lightning talk), Software Sustainibility Institute, Collaborations Workshop 2014, Oxford, UK
  • 12th March 2014 - Fun with Indexed Monads, Fun in the Afternoon, hosted at Facebook, London [Slides and code]
  • 12th November 2013 - Upgrading Fortran source code using automatic refactoring and lightweight verification extensions, Cambridge Centre for Climate Science, Department of Geography, University of Cambridge
  • 27th October 2013 - Upgrading Fortran soure code using automatic refactoring, Workshop on Refactoring Tools (WRT'13) at SPLASH 2013, Indianapolis, USA [slides]
  • 21st October 2013 - Upgrading Fortran soure code using automatic refactoring, DTG Seminar, Computer Laboratory, University of Cambridge, UK
  • 25th September 2013 - Automatic SIMD vectorization for Haskell ICFP (International Conference on Functional Programming) 2013, Boston, MA, USA [slides]
  • 17th September 2013 - Automatic SIMD vectorization for Haskell CPRG Seminar, Computer Laboratory, Cambridge, UK [slides]
  • 13th November 2012 - Programs in context - Intelligent and Adaptive Systems Research Group, Department of Computer Science, University of Warwick [slides]
  • 5th November 2012 - Programs in context - Digital Technology Group Seminar, Computer Laboratory, Cambridge
  • 30st August 2012 - A Notation for Comonads - Implementation and Application of Functional Languages 2012 (IFL'12), Oxford, UK [slides] [video].
  • 22nd June 2012 - A Notation for Comonads, Context, and Intensional Programming - Algebra of Programming informal seminar, Department of Computer Science, Oxford, UK
  • 13th June 2012 - Mathematical Structures for Data Types with Restricted Parametericity, Trends in Functional Programming 2012, St. Andrews, Scotland [slides]
  • 8th June 2012 - Mathematical Structures for Data Types with Restricted Parametericity, CPRG Seminar, Computer Laboratory, Cambridge
  • 27th April 2012 - The Unreasonable Effectivness of (High School) Mathematics, 5th Annual Jesus College Graduate Conference, Cambridge [slides] [video]
  • 23rd Februrary 2012 - Coeffect systems: capturing context-dependence, University of Strathclyde, Mathematically Structured Programming Group Seminar, Glasgow (slides on request)
  • 27th October 2011 - The Four Rs of Programming Language Design, Onward! Essay Presentation, SPLASH 2011, Portland, Oregon, USA.
  • 7th October 2011 - Coeffect Systems and Typing - (with Tomas Petricek), CPRG Seminar, Computer Laboratory, Cambridge [slides]
  • 7th September 2011 - Efficient and Correct Stencil Computations via Pattern Matching and Type Checking - IFIP Working Conference on DSLs, DSL 2011, Bordeaux, France [slides]
  • 2nd September 2011 - Efficient and Correct Stencil Computations via Pattern Matching and Type Checking - CPRG Seminar, Computer Laboratory, Cambridge
  • 2nd June 2011 - Programming with Comonads and Codo Notation - Tallinn University of Technology, Institute of Cybernetics, Estonia [slides]
  • 20th May 2011 - When Monads and Comonads Overlap - CPRG Seminar, Computer Laboratory, Cambridge
  • 13th May 2011 - Programming with Comonads and Codo Notation - CPRG Seminar, Computer Laboratory, Cambridge
  • 26th November 2010 - repeat lecture - Mathematically Structuring Programming Languages - Research Students Lecture Course, Cambridge, UK. [slides, notes, and examples]
  • 20th August 2010 - Rethinking Language Design for Parallelization, Intel Labs, Santa Clara, California, USA [slides]
  • 2nd June 2010 - Programming with monads combined with comonads - ICFP PC Workshop 2010, Microsoft Research, Cambridge, UK [slides]
  • 14th May 2010 - lecture - Mathematically Structuring Programming Languages - Research Students Lecture Course, Cambridge, UK. [slides, notes, and examples]
  • 21st 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]
  • 17th February 2010 - Haskell Type Constraints Unleashed - Fun in the Afternoon, Standard Chartered Bank, London [slides]
  • 12th February 2010 - Haskell Type Constraints Unleashed - CPRG Seminar, Computer Laboratory, Cambridge
  • 19th January 2010 - Ypnos: Declarative, Parallel Structured Grid Programming, DAMP '10, Madrid, Spain [slides]
  • 20th November 2009 - Ypnos: Declarative, Parallel Structured Grid Programming, CPRG Seminar, Computer Laboratory, Cambridge [slides]
  • 1st May 2009 - Programming Language Design, Jesus College Graduate Symposium '09 [slides]
  • 7th April 2009 - Lucian: Dataflow and Object Orientation - BCTCS '09, University of Warwick, UK [slides] [abstract]
  • 13th March 2009 - Interoperation of Lucid's Dataflow paradigm and Object-orientation with a Coalgebraic Semantics - CPRG Seminar, Computer Laboratory, Cambridge

Commitees

  • PLE 2014 (Programming Language Evolution) Co-chair 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:

I have supervised, or am currently supervising, the following courses:

  • Denotational Semantics (2014)
  • Logic and Proof (2013-14)
  • Semantics (Michaelmas and Lent Term, 2009-2014)
  • Concepts in Programming Languages (Easter term, 2010-2011)
  • Optimising Compilers (Michaelmas term, 2008-2009, 2013-14)
  • 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.