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

|
|
Research interests
I still maintain some interest in biological modelling (see here for more info) External Links |
Drafts and Notes
- [new, Dec 2011]
Should I use a Monad or a Comonad?
Dominic Orchard. Submitted to MSFP 2012. [draft]
Shall we be pure or impure? Today we will be pure- but how? This paper explores and formalises the situations in which both a monad and a comonad can be used to structure a particular notion of computation. Various example are considered, and discussion on chosing between a monad and a comonad is provided.
- [updated, Dec 2011]
Coeffects: typing context-dependent computations using comonads
Tomas Petricek, Dominic Orchard, and Alan Mycroft. Submitted to FLOPS 2012. [submitted version] [version with appendices]
Effect systems are a well-known static analysis technique for tracking effects by augmenting typing judgments with effect information. The monadic approach to structuring effects can be unified with the effect systems approach as shown by Wadler and Thiemann. In this paper we study coeffect systems which capture properties of context-dependent computations. We show the construction of a comonadic coeffect system via a tagged comonad structure. Examples and some theory discussion included.
- [updated, Dec 2011]
Structures on Subcategories in Haskell
Dominic Orchard. Submitted to FLOPS 2012. [draft]
Many parametric data types are instances of functors and mon- ads, providing a useful mathematical structuring for programming. How- ever, some parametric data types are restricted to a small set of parame- ter types in order to provide an efficient implementation e.g. unboxed ar- rays restricted to primitive types. Such data types do not fit into current mathematical abstractions in Haskell because of these constraints to their polymorphism. This paper discusses how such data types are instances of structures defined over subcategories, where Haskell type classes de- fine subcategories and constraint families allow these subcategories to be indexed by types. Describes useful structures on subcate- gories in Haskell, including non-endofunctors, i.e. functors with distinct source and target categories, relative monads (introduced by Altenkirch et al.), and relative comonads (new in this work), providing the benefits of clear mathematical structuring for programming with efficient data structures.
Publications
- Efficient and Correct Stencil Computation via Pattern Matching and Static Typing
Dominic Orchard and Alan Mycroft
IFIP Working Conference on Domain-Specific Languages, September 2011 (DSL 2011')
[At the arXiv] [implementation] - Haskell Type Constraints Unleashed
Dominic Orchard and Tom Schrijvers
In Proceedings of the 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] - Ypnos : Declarative Parallel Structured Grid Programming
Dominic Orchard, Max Bolingbroke, and Alan Mycroft
In Proceedings of the 5th ACM SIGPLAN Workshop on Declarative Aspects of Multicore Programming (Madrid, Spain, January 19 - 19, 2010). DAMP '10.DOI
[PDF + corrections] - 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]
Other
- [new, Jan 2012] The Four Rs of Programming Language Design
Dominic Orchard
Onward '11 Essay Workshop, included in the proceedings of the 10th SIGPLAN symposium on New ideas, new paradism, and reflections on programming and software, Portland, November 2011.
Talks
- 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 (277.6MB MPEG4), streaming video @ Vimeo]
- 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 [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 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 talks given by students in the CPRG (lectures note, slides, errata, and examples).
I have supervised, or am currently supervising, the following courses:
- Semantics (Michaelmas and Lent Term, 2009-2012)
- Concepts in Programming Languages (Easter term, 2010-2011)
- Optimising Compilers (Michaelmas term, 2008-2009)
Extra explanatory notes for the constraint based analysis.
- Comparative Architectures (Lent Term, 2009)
I have supervised Part II (final year) projects from 2009-2012. Please get
in touch if you're interested in me supervising your Part II project.
Previous projects supervised:
- Parallelisation of Java for Graphics Processors - Peter Calvert (2009-2010)
- Reconsidering Lucid - a modern approach - Jonas Kaiser (2009-2010)
Academic
I received my MEng in Computer Science in July 2008 from the Department of Computer Science, Universiy of Warwick.
