This page contains a subset of the (mostly public) talks I've given, in reverse chronological order. If you wish to see the slides to a talk that isn't listed here, please contact me, and I'll do my best.

1: Towards Language CompositionA look at ongoing work in the software development team on language composition.• 24th January 2014: University of Cambridge[Slides]
2: Parsing Composed Grammars with Language BoxesParsing uncovers if, and how, an input stream conforms to a grammar. Language composition requires combining grammars together, yet all traditional parsing techniques have limitations when parsing composed grammars. This talk, and its associated demo introduces an editor which extends an incremental parser with language boxes. The resulting editor has the power of syntax directed editing, but the feel of a normal text editor.• 24th August 2013: IFIP WG2.16 meeting[Slides]• 27th June 2013: Scalable Language Specifications 2013[Slides]
3: Language CompositionWhy are general purpose programming languages not always the best tool for the job? Language composition is then presented as a possible solution. However, the experience of the Converge language, and others, shows that meaningful language composition currently eludes us. This talk then suggests two concrete approaches which offer the possibility for allowing language composition to reach its full potential.• 14th May 2013: Oracle Labs[Slides]• 22nd March 2013: Imperial College London[Slides]• 27th February 2013: University of Sussex[Slides]• 13th February 2013: Hasso-Plattner-Institut[Slides]
4: Fast enough VMs in fast enough timeWhat are the performance tradeoffs when designing and implementing a language? What are tracing JITs, meta-tracing JITs? How does RPython work and what are the performance of VMs written using it?• 20th August 2013: Google Aarhus[Slides]• 9th May 2012: Energized Work Tektalk[Slides]• 29th April 2012: Barcamp, Canterbury[Slides]• 20th April 2012: School of Computing, University of Kent[Slides]• 28th February 2012: Informatics, University of Edinburgh[Slides]• 21st February 2012: Programming Language Lab, VUB Brussels[Slides]
5: Experiences of implementing a VM with RPythonA report on preliminary work on implementing an RPython VM for Converge.• 5th January 2012: Dagstuhl 12011[Slides]
6: What role for static analysis in malware detection?A thought experiment which shows that malware authors will always be able to defeat attempts to identify them through purely static analysis.• 6th April 2011: 12th CREST Open Workshop Security and Code[Slides][Video]
7: Slicing state-based modelsAn overview of current research on slicing state-based models.• 25th January 2011: 10th CREST Open Workshop Security and Code[Slides][Video]
8: Experiences with an Icon-like expression evaluation systemAn overview of Converge's Icon-like expression evaluation system, why it's interesting - and why it turns out not to be hugely useful.• 18th October 2010: Dynamic Languages Symposium[Slides]
9: An overview of domain specific languagesAn overview of DSLs: what they are, where they can help, what the inevitable compromises are, and the questions one should ask oneself before building a DSL.• 9th June 2010: Software Experts Summit[Slides]
10: Mobile applicationsAn overview of developing mobile applications, based on personal experience, aimed at sixth form pupils. The talk also included the development of a small mobile app from scratch, to give pupils an idea of how (relatively) easy it is to get started.• 16th March 2010: Computing At School Conference[Slides]
11: extsmailAn overview of extsmail, as an example of creating a UNIX daemon. This talk covers the motivation for extsmail, why it was programmed in C, and what some of the challenges in programming it were (and weren't).• 19th November 2008: BUNIX (Bournemouth UNIX user group)[Slides]
12: Language design: back to the future?This talk is an attempt to make us think: about the relative homogeneity of most programming languages; why we've ended up in this situation; and how programming language archaeology can sometimes reinject interesting ideas.• 8th July 2008: Dynamic Languages Symposium[Slides]