I am a Principal Researcher at Microsoft Research, Cambridge. I help Microsoft make better programming languages, and, through that, make people more productive and happier.
My main current responsibility is the design and implementation of F# (blog), though I've also worked on C# (being co-responsible for C# and .NET generics) and, indirectly, Visual Basic and other .NET languages.
As a researcher, my area is programming language design and implementation, with emphasis on making functional languages that are simpler to use, interoperate well with other languages and which incorporate aspects of object-oriented, asynchronous and parallel programming. I am interested in programming language perspectives on type inference, concurrency, reactivity, pattern matching and language-oriented programming. I also work extensively with teams in the Microsoft Developer Division on other programming-related technologies.
I am the primary author of Expert F#, published in 2007, and we are now working on a second edition of this book. In the past I have worked in formal specification, interactive proof, automated verification and proof description languages. I have a PhD from the University of Cambridge and am a member of the WG2.8 working group on functional programming.
Email: dsyme ... microsoft ... com
Phone: +44 1223 479806
- Tomas Petricek and Don Syme, The F# Computation Expression Zoo, in Proceedings of Practical Aspects of Declarative Languages, ACM, 2014.
- Don Syme, Kenji Takeda, Keith Battocchi, Donna Malayeri, and Tomas Petricek, Themes in Information-Rich Functional Programming for Internet-Scale Data Sources, ACM, 24 January 2013.
- Don Syme, Keith Battocchi, and Gordon Hodgenson, Creating a Type Provider (F#), Microsoft, 12 January 2013.
- Don Syme, Adam Granicz, and Antonio Cisternino, Expert F# 3.0, Apress, 7 November 2012.
- Don Syme, Keith Battocchi, Kenji Takeda, Donna Malayeri, Jomo Fisher, Jack Hu, Tao Liu, Brian McNamara, Daniel Quirk, Matteo Taveggia, Wonseok Chae, Uladzimir Matsveyeu, and Tomas Petricek, F#3.0 - Strongly-Typed Language Support for Internet-Scale Information Sources, no. MSR-TR-2012-101, 21 September 2012.
- Tomas Petricek, Don Syme, and Alan Mycroft, Extending Monads with Pattern Matching, in Proceedings of Haskell Symposium, ACM, 2011.
- Donald Syme, Tomas Petricek, and Dmitry Lomov, The F# Asynchronous Programming Model, in In Proceedings of Principles and Applications of Declarative Languages, 2011, ACM SIGPLAN, 2011.
- Tomas Petricek and Don Syme, Joinads: a retargetable control-flow construct for reactive, parallel and concurrent programming, in Proceedings of Practical Aspects of Declarative Languages, ACM, 2011.
- Judith Bishop, Jonathan de Halleux, Nikolai Tillmann, R. Nigel Horspool, Don Syme, and Tao Xie, Browser-based software for technology transfer, in SAICSIT Conf., 2011.
- Tomas Petricek and Donald Syme, Collecting hollywood's garbage: avoiding space-leaks in composite events, in ISMM '10 Proceedings of the 2010 international symposium on Memory management , ACM SIGPLAN, 2010.
- Don Syme, The F# Draft Language Specification, Microsoft, 1 February 2009.
- Don Syme, Introduction to F# (recorded lecture), Microsoft, 12 February 2008.
- Don Syme, Parallel Functional Programming on .NET with F# (recorded lecture), Microsoft, 12 February 2008.
- Don Syme, Adam Granicz, and Antonio Cisternino, Expert F#, Springer Verlag, 10 January 2008.
- Don Syme, Gregory Neverov, and James Margetson, Extensible pattern matching via a lightweight language extension, in Proceedings of the 12th ACM SIGPLAN international conference on Functional programming , Association for Computing Machinery, Inc., 3 October 2007.
- Don Syme and Gregory Neverov, Combining Total and Ad Hoc Extensible Pattern Matching in a Lightweight Language Extension, no. MSR-TR-2007-33, April 2007.
- Don Syme, Initializing Mutually Referential Abstract Objects (talk slides), Microsoft, 11 March 2006.
- Don Syme, Initializing Mutually Referential Abstract Objects: The Value Recursion Challenge , in Proceedings of the ACM-SIGPLAN Workshop on ML (2005), Elsevier , 11 March 2006.
- Donald Syme, Leveraging .NET meta-programming components from F#: integrated queries and interoperable heterogeneous execution, in Proceedings of the 2006 workshop on ML , ACM, 2006.
- Don Syme, An Alternative Approach to Initializing Mutually Referential Objects, no. MSR-TR-2005-31, March 2005.
- Carl Seger, Robert Jones, Mark Aagaard, Tom Melham, Clark Barrett, and Don Syme, An Industrially Effective Environment for Hardware Verification, Institute of Electrical and Electronics Engineers, Inc., February 2005.
- Don Syme and Andrew Kennedy, Transposing F to C#: Expressivity of polymorphism in an object-oriented language, Wiley, June 2004.
- Andrew J. Kennedy and Don Syme, Transposing F to C#: Expressivity of parametric polymorphism in an object-oriented language, in Concurrency and Computation: Practice and Experience, vol. 16, no. 7, Wiley, June 2004.
- Don Syme and Andrew Kennedy, Combining Generics, Pre-compilation and Sharing Between Software-Based Processes, January 2004.
- Dachuan Yu, Andrew J. Kennedy, and Don Syme, Formalization of Generics for the .NET Common Language Runtime, in POPL '04: Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM Press, January 2004.