Skip to main content

Modern Concurrency Abstractions for C#

  • Conference paper
  • First Online:
ECOOP 2002 — Object-Oriented Programming (ECOOP 2002)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2374))

Included in the following conference series:

Abstract

Polyphonic C# is an extension of the C# language with new asynchronous concurrency constructs, based on the join calculus. We describe the design and implementation of the language and give examples of its use in addressing a range of concurrent programming problems.

An earlier version of this work was presented at the FOOL9 workshop in January 2002 Portland, Oregon.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G. Agha, P. Wegner, and A. Yonezawa. Research Directions in Concurrent Object-Oriented Programming. MIT Press, 1993.

    Google Scholar 

  2. P. America. Issues in the design of a parallel object-oriented language. Formal Aspects of Computing, 1(4):366–411, 1989.

    Article  MATH  Google Scholar 

  3. T. Barclay, J. Gray, and D. Slutz. Microsoft TerraServer: A spatial data warehouse. In Proceedings of ACM SIGMOD, May 2000. Also Microsoft Research Tech Report MS-TR-99-29.

    Google Scholar 

  4. A. D. Birrell, J. V. Guttag, J. J. Horning, and R. Levin. Synchronization primitives for a multiprocessor: A formal specification. Research Report 20, DEC SRC, August 1987.

    Google Scholar 

  5. A. D. Birrell. An introduction to programming with threads. Research Report 35, DEC SRC, January 1989.

    Google Scholar 

  6. L. Cardelli and R. Davies. Service combinators for web computing. Software Engineering, 25(3):309–316, 1999.

    Article  Google Scholar 

  7. S. Chaki, S. K. Rajamani, and J. Rehof. Types as models: Model checking message-passing programs. In Proceedings of the 29th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, 2002.

    Google Scholar 

  8. S. Conchon and F. Le Fessant. Jocaml: Mobile agents for Objective-Caml. In First International Symposium on Agent Systems and Applications (ASA’99)/Third International Symposium on Mobile Agents (MA’99), pages 22–29. IEEE Computer Society, October 1999. Software and documentation available from http://pauillac.inria.fr/jocaml.

  9. D. L. Detlefs, K. R. M. Leino, G. Nelson, and J. B. Saxe. Extended static checking. Research Report 159, DEC SRC, December 1998.

    Google Scholar 

  10. ECMA. Standard ECMA-334: C# Language Specification, December 2001.

    Google Scholar 

  11. C. Fournet and G. Gonthier. The reflexive chemical abstract machine and the join-calculus. In Proc. POPL’96, pages 372–385. ACM, January 1996.

    Google Scholar 

  12. C. Fournet and G. Gonthier. The join calculus: a language for distributed mobile programming. In Proceedings of the Applied Semantics Summer School (APPSEM), Caminha, September 2000. To appear. Draft available from http://research.microsoft.com/~fournet.

  13. C. Fournet, C. Laneve, L. Maranget, and D. Rémy. Inheritance in the join-calculus (extended abstract). In FST TCS 2000: Foundations of Software Technology and Theoretical Computer Science, volume 1974 of LNCS, pages 397–408, New Delhi, India, December 2000. Springer-Verlag. Full version available from http://research.microsoft.com/~fournet.

    Chapter  Google Scholar 

  14. J. Gosling, B. Joy, and G. Steele. Threads and locks. In The Java Language Specification, chapter 17. Addison Wesley, 1996.

    Google Scholar 

  15. Y. Gurevich, W. Schulte, and C. Wallace. Investigating Java concurrency using abstract state machines. In Y. Gurevich, P. Kutter, M. Odersky, and L. Thiele, editors, Abstract State Machines: Theory and Applications, volume 1912 of Lecture Notes in Computer Science, pages 151–176. Springer, 2000.

    Chapter  Google Scholar 

  16. C. A. R. Hoare. Monitors: An operating system structuring concept. Communications of the ACM, 17(10):549–557, October 1974.

    Google Scholar 

  17. C. A. R. Hoare. Communicating Sequential Processes. Prentice-Hall, 1985.

    Google Scholar 

  18. A. Igarashi and N. Kobayashi. A generic type system for the Pi-Calculus. In Proceedings of the 28th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, 2001.

    Google Scholar 

  19. INMOS Limited. Occam Programming Manual. Prentice-Hall Int., 1984.

    Google Scholar 

  20. S. Kamin, editor. Proceedings of the First ACM-SIGPLAN Workshop on Domain-Specific Languages, Paris, France, January 1997.

    Google Scholar 

  21. J. R. Larus and M. Parkes. Using cohort scheduling to enhance server performance. Technical Report MSR-TR-2001-39, Microsoft Research, March 2001.

    Google Scholar 

  22. D. Lea. Concurrent Programming in Java: Design Principles and Patterns. Addison-Wesley, second edition edition, 1999.

    Google Scholar 

  23. F. Le Fessant and L. Maranget. Compiling join-patterns. In U. Nestmann and B. C. Pierce, editors, HLCL’ 98: High-Level Concurrent Languages, volume 16(3) of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, September 1998.

    Google Scholar 

  24. S. Matsuoka and A. Yonezawa. Analysis of inheritance anomaly in object-oriented concurrent programming languages. In AghaWegner Yonezawa [1], chapter 4, pages 107–150.

    Google Scholar 

  25. Microsoft Corporation. Terraservice. http://terraserver.microsoft.net/.

  26. H. R. Nielson and F. Nielson. Higher-order concurrent programs with finite communication topology. In Proceedings of the 21st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, 1994.

    Google Scholar 

  27. M. Odersky. Functional nets. In Proc. European Symposium on Programming, volume 1782 of LNCS, pages 1–25. Springer Verlag, 2000.

    Google Scholar 

  28. M. Philippsen. Imperative concurrent object-oriented languages: An annotated bibliography. Technical Report TR-95-049, International Computer Science Institute, Berkeley, CA, 1995.

    Google Scholar 

  29. J. C. Ramming, editor. Proceedings of the First USENIX Conference on Domain-Specific Languages, Santa Barbara, California, October 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Benton, N., Cardelli, L., Fournet, C. (2002). Modern Concurrency Abstractions for C# . In: Magnusson, B. (eds) ECOOP 2002 — Object-Oriented Programming. ECOOP 2002. Lecture Notes in Computer Science, vol 2374. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47993-7_18

Download citation

  • DOI: https://doi.org/10.1007/3-540-47993-7_18

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-43759-8

  • Online ISBN: 978-3-540-47993-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics