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).
(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!
At this year's ICFP I have 3 papers:
- ICFP 14 - Coeffects: A calculus of context-dependent computation with Tomas Petricek and Alan Mycroft
- Haskell 14 - Embedding effect systems in Haskell with Tomas Petricek
- FARM 14 - A temporal semantics for a live coding language with Sam Aaron and Alan Blackwell.
Attended ICCS 2014, presenting my paper A computational science agenda for programming language research (with Andrew Rice).
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!
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.
I am on the Artefact Evaluation Committee (AEC) for ECOOP 2014.
I attended SPLASH 2013 in Indianapolis, presenting at WRT'13 [PDF].
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
- (June '14)
Embedding effect systems in Haskell
- (June '14)
Temporal semantics for a live coding language
Coeffects: A calculus of context-dependent computation
A computational science agenda for programming
The semantic marriage of monads and effects (extended abstract)
Upgrading Fortran source code using automatic refactoring
Automatic SIMD Vectorization for Haskell
Coeffects: Unified static analysis of context-dependence
A Notation for Comonads
- The four Rs of programming language design
- Efficient and Correct Stencil Computation via Pattern Matching and Static Typing
- Haskell Type Constraints Unleashed
- Ypnos : Declarative Parallel Structured Grid Programming
- muCell - Interdisciplinary Research in Modelling and Simulation of Cell Spatial Behaviour
- Integrating Lucid's Declarative Dataflow Paradigm into Object-Orientation
Dominic Orchard and Steve Matthews
Mathematics in Computer Science, 2(1), November 2008
Old drafts and notes (some may be resurrected someday)
Categorical Programming for Data Types with Restricted Parametericity
Should I use a Monad or a Comonad?
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]
- 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
- 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
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).