Computer Laboratory

Dominic Orchard

PhD Candidate in the Cambridge Programming Research Group (part of the Programming, Logic and Semantics Group)

(Oct 2012) Research Associate in the Digital Technology Group working on programming language approaches to computational science with Andrew Rice.

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:Jesus College

Research interests

  • Programming language design and semantics
  • Mathematically structured programming, particular with comonads
  • Functional and intensional programming
  • Embedded domain-specific languages (esp. for parallelisation)

I still maintain some interest in biological modelling (see here for more info).

External Links

News

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

April 2013
Submitted a paper to ICFP 2013 with Leaf Petersen and Neal Glew on SIMD vectorisation of GHC core.

Coeffects: unified static analysis of context-dependence (pdf), with Tomas Petricek and Alan Mycroft, accepted to ICALP 2013.

I am on the PC of IFL 2013, this year hosted at Radboud University, Nijmegen.

March 2013
A Notation For Comonads (pdf), with Alan Mycroft, accepted for publication in the post-proceeedings of IFL 2012.

Publications

  •   (Jue, 2013) Automatic SIMD Vectorization for Haskell
    Leaf Petersen, Dominic Orchard, Neal Glew.
    ICFP 2013 (to appear)
    Show abstract >>>
  •   (updated, May 2013) Coeffects: Unified static analysis of context-dependence
    Tomas Petricek, Dominic Orchard, and Alan Mycroft.
    (to appear) 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 (to 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

  • The Unreasonable Effectiveness of (Basic Secondary School) Mathematics
    Dominic Orchard, Jesus College Annual Report 2012, (p.27-28) [PDF] (PDF version has corrupted figure on p.28)

Talks

  • 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]
  • 13th March 2009 - Interoperation of Lucid's Dataflow paradigm and Object-orientation with a Coalgebraic Semantics - CPRG Seminar, Computer Laboratory, Cambridge

Teaching

I supervise Part II (final year) projects. I have written down some proposals for potential projects. Please get in touch if you are interested in me supervising your Part II project.
Previous projects supervised:

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

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