Computer Laboratory

Dr 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 May 12th!

News

June 2014
At this year's ICFP I have 3 papers:

Attended ICCS 2014, presenting my paper A computational science agenda for programming language research (with Andrew Rice).

May 2014
My PhD Dissertation, Programming contextual computations, is finally online as a a University of Cambridge technical report. Let me know if you spot any typos!

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 May 12th.

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


[Older news items]

PhD Dissertation (finally online! May '14)

  • Programming contextual computations
    Dominic Orchard, University of Cambridge, 2014, Technical Report PDF
    Show abstract >>>

Publications

  •   (June '14) Embedding effect systems in Haskell
    Dominic Orchard, Tomas Petricek.
    Haskell Symposium 2014 [PDF]
    Show abstract >>>
  •   (June '14) Temporal semantics for a live coding language
    Sam Aaron, Dominic Orchard, Alan Blackwell.
    Workshop on Functional Art and Music (FARM) 2014 [PDF]
    Show abstract >>>
  •   (May '14) Coeffects: A calculus of context-dependent computation
    Tomas Petricek, Dominic Orchard, Alan Mycroft.
    to appear at ICFP 2014 [PDF]
    Show abstract >>>
  • 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

  • 17th June 2014 - Dualising effect systems to understand resources and context dependence, Mobility Reading Group, Department of Computing, Imperial College London, UK [slides]
  • 12th June 2014 - A computational science agenda for programming language research, International Conference of Computational Science 2014, Cairns, Australia [slides]
  • 2nd June 2014 - A computational science agenda for programming language research, Digital Technology Group, Computer Laboratory, University of Cambridge
  • 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:

  • The Formatting Problem for code (2013-14) (Part III)
  • Dimensions types in Fortran (2013-14) (Part III)
  • Distributed Programming with Rebindable Resources (2013-14)
  • Implementing the Codo Syntax for Comonads in GHC (2012-13)
  • GPU accelerating the Ypnos programming language (2012-13)
  • VisualLucid IDE - A visual approach to dataflow programming (2011-12)
  • Accessing Standard ML Constructs From Java Across Language Domains (2011-12)
  • Parallelisation of Java for Graphics Processors - Peter Calvert (2009-10)
  • Reconsidering Lucid - a modern approach - Jonas Kaiser (2009-10)

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.