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.
F#/C# Contract Position for Silverlight/HTML 5 User Interface Development at Microsoft Research, Cambridge, UK
Mon, 30 Jan 2012 17:32:00 GMT
First F# Seattle Meetup This Saturday, Redmond
Wed, 25 Jan 2012 09:42:00 GMT
London F# Meetup Group this Thursday: Pacman Kata
Tue, 24 Jan 2012 14:44:34 GMT
F# 3.0 at TechDays France, Feb 7, Paris!
Sun, 22 Jan 2012 17:43:00 GMT
F#, WebSharper, JavaScript, HTML5, Mobile etc.
Sun, 22 Jan 2012 17:03:00 GMT
Email: dsyme ... microsoft ... com
Phone: +44 1223 479806

An Overview of Functional Programming
Dorian Corompt introduces a series of blog posts about functional programming.
Wed, 01 Feb 2012 17:45:00 Z
Visual F# Walkthroughs
Check out this list of F# walkthoughs in the MSDN Library.
Wed, 01 Feb 2012 17:50:00 Z
Microsoft Releases Local, Distributed and Cloud Numerics Library, with F# Samples
Don Syme introduces the Cloud Numerics library and provides links to more info.
Wed, 01 Feb 2012 17:45:00 Z
- 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 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, Parallel Functional Programming on .NET with F# (recorded lecture), Microsoft, 12 February 2008
- Don Syme, Introduction to 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
- 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, Transposing F to C#: Expressivity of polymorphism in an object-oriented language, 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
- Don Syme and Andy Gordon, Automating Type Soundness Proofs via Decision Procedures and Guided Reductions , Springer-Verlag, October 2002
- Don Syme, ILX: Extending the .NET Common IL for Functional Language Interoperability, Springer-Verlag, September 2001
- A. J. Kennedy and D. Syme, Design and Implementation of Generics for the .NET Common Language Runtime, in Programming Language Design and Implementation, ACM Press, January 2001
- Don Syme and Andy Gordon, Typing a multilanguage intermediate code, Association for Computing Machinery, Inc., December 2000
- Donald Syme, Declarative Theorem Proving for Operational Semantics, April 1999
- Donald Syme, Three Tactic Theorem Proving, January 1998
- Don Syme, Interaction for Declarative Theorem Proving, January 1998
- Don Syme, Towords a Machine Checked, Readable Proof of Jave Type Soundness, April 1997



