Skip to main content

The Joins Concurrency Library

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4354))

Abstract

Cω extended C# 1.x with a simple, declarative and powerful model of concurrency – join patterns – applicable both to multithreaded applications and to the orchestration of asynchronous, event-based distributed applications. With Generics available in C# 2.0, we can now provide join patterns as a library rather than a language feature. The Joins library extends its clients with an embedded, type-safe and mostly declarative language for expressing synchronization patterns. The library has some advantages over Cω: it is language neutral, supporting other languages like Visual Basic; its join patterns are more dynamic, allowing solutions difficult to express with Cω; its code is easy to modify, fostering experimentation. Although presenting fewer optimization opportunities, the implementation is efficient and its interface makes it trivial to translate Cω programs to C#. We describe the interface and implementation of Joins which (ab)uses almost every feature of Generics.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Microsoft Research: Cω (2004), http://research.microsoft.com/Comega

  2. Russo, C.: Joins: A Concurrency Library, Binaries with tutorial and samples (2006), http://research.microsoft.com/research/downloads

  3. Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for C#. ACM Transactions on Programming Languages and Systems 26 (2004)

    Google Scholar 

  4. Itzstein, G.S., Kearney, D.: Join Java: An alternative concurrency semantics for Java. Technical Report ACRC-01-001, University of South Australia (2001)

    Google Scholar 

  5. Chrysanthakopoulos, G., Singh, S.: An asynchronous messaging library for C#. In: Synchronization and Concurrency in Object-Oriented Languages (SCOOL). OOPSLA 2005 Workshop, UR Research (2005)

    Google Scholar 

  6. Kennedy, A.J., Russo, C.V.: Generalized algebraic data types and object-oriented programming. In: Object-Oriented Programming: Systems, Languages, Applications (OOPSLA), San Diego. ACM, New York (2005)

    Google Scholar 

  7. Fournet, C., Gonthier, G.: The join calculus: a language for distributed mobile programming. In: Barthe, G., et al. (eds.) APPSEM 2000. LNCS, vol. 2395. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  8. Fournet, C., Le Fessant, F., Maranget, L., Schmitt, A.: JoCaml: a language for concurrent distributed and mobile programming. In: Jeuring, J., Jones, S.L.P. (eds.) AFP 2002. LNCS, vol. 2638. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  9. Odersky, M.: An overview of functional nets. In: Barthe, G., et al. (eds.) APPSEM 2000. LNCS, vol. 2395. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  10. Singh, S.: Higher-order combinators for join patterns using STM. In: TRANSACT ACM Workshop on Languages, Compilers and Hardware Support for Transactional Computing (2006)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Russo, C. (2006). The Joins Concurrency Library. In: Hanus, M. (eds) Practical Aspects of Declarative Languages. PADL 2007. Lecture Notes in Computer Science, vol 4354. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69611-7_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-69611-7_17

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-69608-7

  • Online ISBN: 978-3-540-69611-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics