Concurrency Combinators for Declarative Synchronization

  • Paweł T. Wojciechowski
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3302)


Developing computer systems that are both concurrent and evolving is challenging. To guarantee consistent access to resources by concurrent software components, some synchronization is required. A synchronization logic, or policy, is at present entangled in the component code. Adding a new component or modifying existing components, which may require a change of the (global) synchronization policy, is therefore subjected to an extensive inspection of the complete code. We propose a calculus of concurrency combinators that allows a program code and its synchronization policy to be expressed separately; the policies include true parallelism, sequentiality, and isolation-only transactions. The calculus is equipped with an operational semantics and a type system. The type system is used to verify if a synchronization policy declared using combinators can be satisfied by program execution.


Type System Operational Semantic Composite Service Concurrency Control Concurrent Execution 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Achermann, F., Nierstrasz, O.: Applications = Components + Scripts – A Tour of Piccola. In: Aksit, M. (ed.) Software Architectures and Component Technology, pp. 261–292. Kluwer Academic Publishers, Dordrecht (2001)Google Scholar
  2. 2.
    Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for C#. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, p. 415. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  3. 3.
    Black, A.P., Cremet, V., Guerraoui, R., Odersky, M.: An equational theory for transactions. In: Pandya, P.K., Radhakrishnan, J. (eds.) FSTTCS 2003. LNCS, vol. 2914, pp. 38–49. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  4. 4.
    Drejhammar, F., Schulte, C., Brand, P., Haridi, S.: Flow Java: Declarative concurrency for Java. In: Palamidessi, C. (ed.) ICLP 2003. LNCS, vol. 2916, pp. 346–360. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  5. 5.
    Fessant, F.L., Maranget, L.: Compiling join-patterns. In: Proc. HLCL 1998 (Workshop on High-Level Concurrent Languages) (1998)Google Scholar
  6. 6.
    Flanagan, C., Qadeer, S.: A type and effect system for atomicity. In: Proc. PLDI 2003 (Conf. on Programming Language Design and Implementation) (June 2003)Google Scholar
  7. 7.
    Fournet, C., Gonthier, G., Lévy, J.-J., Maranget, L., Rémy, D.: A calculus of mobile agents. In: Sassone, V., Montanari, U. (eds.) CONCUR 1996. LNCS, vol. 1119. Springer, Heidelberg (1996)Google Scholar
  8. 8.
    Frølund, S., Agha, G.: A language framework for multi-object coordination. In: Nierstrasz, O. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 346–360. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  9. 9.
    Haines, N., Kindred, D., Morrisett, J.G., Nettles, S.M., Wing, J.M.: Composing first-class transactions. ACM TOPLAS 16(6), 1719–1736 (1994)CrossRefGoogle Scholar
  10. 10.
    Harris, T., Fraser, K.: Language support for lightweight transactions. In: Proc. OOPSLA 2003 (October 2003)Google Scholar
  11. 11.
    Hursch, W., Lopes, C.: Separation of concerns. Technical Report NU-CCS-95-03. College of Computer Science, Northeastern University (February 1995)Google Scholar
  12. 12.
    Jagadeesan, R., Jeffrey, A., Riely, J.: A calculus of untyped aspect-oriented programs. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743. Springer, Heidelberg (2003)Google Scholar
  13. 13.
    Jagannathan, S., Vitek, J.: Optimistic concurrency semantics for transactions in coordination languages. In: De Nicola, R., Ferrari, G.L., Meredith, G. (eds.) COORDINATION 2004. LNCS, vol. 2949. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  14. 14.
    Jones, S.P., Gordon, A., Finne, S.: Concurrent Haskell. In: Proc. POPL 1996 (23rd ACM Symposium on Principles of Programming Languages) (January 1996)Google Scholar
  15. 15.
    Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.: Getting started with AspectJ. Communications of the ACM 44(10), 59–65 (2001)CrossRefzbMATHGoogle Scholar
  16. 16.
    Lopes, C.V.: D: A Language Framework for Distributed Programming. PhD thesis, College of Computer Science, Northeastern University, December 1997 (1998)Google Scholar
  17. 17.
    Matsuoka, S., Yonezawa, A.: Analysis of inheritance anomaly in object-oriented concurrent programming languages. In: Research Directions in Concurrent Object-Oriented Programming, pp. 107–150. MIT Press, Cambridge (1993)Google Scholar
  18. 18.
    Milicia, G., Sassone, V.: Jeeg: A programming language for concurrent objects synchronization. In: Proc. ACM Java Grande/ISCOPE Conference (November 2002)Google Scholar
  19. 19.
    Milicia, G., Sassone, V.: Jeeg: Temporal constraints for the synchronization of concurrent objects. Tech. Report RS-03-6, BRICS (February 2003)Google Scholar
  20. 20.
    Panangaden, P., Reppy, J.: The Essence of Concurrent ML. In: Nielson, F. (ed.) ML with Concurrency: Design, Analysis, Implementation, and Application, pp. 5–29. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  21. 21.
    Pierce, B.C., Turner, D.N.: Pict: A programming language based on the pi-calculus. In: Plotkin, G., Stirling, C., Tofte, M. (eds.) Proof, Language and Interaction: Essays in Honour of Robin Milner. MIT Press, Cambridge (2000)Google Scholar
  22. 22.
    Plotkin, G.D.: Call-by-name, call-by-value and the λ-calculus. Theoretical Computer Science 1, 125–159 (1975)MathSciNetCrossRefzbMATHGoogle Scholar
  23. 23.
    Ren, S., Agha, G.A.: RTsynchronizer: Language support for real-time specifications in distributed systems. In: Proc. ACM Workshop on Languages, Compilers, & Tools for Real-Time Systems (1995)Google Scholar
  24. 24.
    Sewell, P., Wojciechowski, P.T., Pierce, B.C.: Location-independent communication for mobile agents: A two-level architecture. In: Bal, H.E., Cardelli, L., Belkhouche, B. (eds.) ICCL-WS 1998. LNCS, vol. 1686, pp. 1–31. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  25. 25.
    Vitek, J., Jagannathan, S., Welc, A., Hosking, A.L.: A semantic framework for designer transactions. In: Schmidt, D. (ed.) ESOP 2004. LNCS, vol. 2986, pp. 249–263. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  26. 26.
    W3C. Web Services Architecture (2004),
  27. 27.
    Wojciechowski, P., Rütti, O., Schiper, A.: SAMOA: A framework for a synchronisation-augmented microprotocol approach. In: Proc. IPDPS 2004 (18th International Parallel and Distributed Processing Symposium) (April 2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Paweł T. Wojciechowski
    • 1
  1. 1.School of Computer and Communication SciencesEPFLLausanneSwitzerland

Personalised recommendations