The F# Asynchronous Programming Model

  • Don Syme
  • Tomas Petricek
  • Dmitry Lomov
Conference paper

DOI: 10.1007/978-3-642-18378-2_15

Part of the Lecture Notes in Computer Science book series (LNCS, volume 6539)
Cite this paper as:
Syme D., Petricek T., Lomov D. (2011) The F# Asynchronous Programming Model. In: Rocha R., Launchbury J. (eds) Practical Aspects of Declarative Languages. PADL 2011. Lecture Notes in Computer Science, vol 6539. Springer, Berlin, Heidelberg


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#.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Don Syme
    • 1
  • Tomas Petricek
    • 2
  • Dmitry Lomov
    • 3
  1. 1.Microsoft ResearchCambridgeUnited Kingdom
  2. 2.Faculty of Mathematics and PhysicsCharles UniversityPragueCzech Republic
  3. 3.Microsoft CorporationRedmondUSA

Personalised recommendations