The F# Asynchronous Programming Model
Don Syme, Tomas Petricek and Dmitry Lomov
In Proceedings of PADL 2011
We describe the asynchronous programming model in F#, and its applications to reactive, parallel and concurrent programming. The key feature combines a core language with a non-blocking modality to author lightweight asynchronous tasks, where the modality has control flow constructs that are syntactically a superset of the core language and are given an asynchronous semantic interpretation.
This allows smooth transitions between synchronous and asynchronous code and eliminates callback-style treatments of inversion of control, without disturbing the foundation of CPU-intensive programming that allows F# to interoperate smoothly and compile efficiently. An adapted version of this approach has recently been announced for a future version of C#.
Paper and more information
- Download the paper (PDF)
- Read more on Don Syme's blog
- Watch an earlier interview with Don Syme
If you want to cite the paper, you can use the following BibTeX information, or get full details from the paper page on ACM.
1: 2: 3: 4: 5: 6: 7: 8:
If you have any comments, suggestions or related ideas, I'll be happy to hear from you! Send me an email at firstname.lastname@example.org or get in touch via Twitter at @tomaspetricek.
Published: Tuesday, 18 January 2011, 12:00 AM
Author: Tomas Petricek
Typos: Send me a pull request!