Proving Copyless Message Passing

  • Jules Villard
  • Étienne Lozes
  • Cristiano Calcagno
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5904)


Handling concurrency using a shared memory and locks is tedious and error-prone. One solution is to use message passing instead. We study here a particular, contract-based flavor that makes the ownership transfer of messages explicit. In this case, ownership of the heap region representing the content of a message is lost upon sending, which can lead to efficient implementations. In this paper, we define a proof system for a concurrent imperative programming language implementing this idea and inspired by the Singularity OS. The proof system, for which we prove soundness, is an extension of separation logic, which has already been used successfully to study various ownership-oriented paradigms.


Message Passing Proof System Memory State Parallel Composition Separation Logic 
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.
  2. 2.
    Bornat, R., Calcagno, C., Yang, H.: Variables as Resource in Separation Logic. Electronic Notes in Theoretical Computer Science 155, 247–276 (2006)CrossRefGoogle Scholar
  3. 3.
    Brookes, S.: A semantics for concurrent separation logic. TCS 375(1-3), 227–270 (2007)zbMATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    Calcagno, C., Parkinson, M., Vafeiadis, V.: Modular Safety Checking for Fine-Grained Concurrency. In: Riis Nielson, H., Filé, G. (eds.) SAS 2007. LNCS, vol. 4634, pp. 233–248. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  5. 5.
    Calcagno, C., O’Hearn, P., Yang, H.: Local action and abstract separation logic. In: 22nd LICS, pp. 366–378 (2007)Google Scholar
  6. 6.
    Fähndrich, M., Aiken, M., Hawblitzel, C., Hodson, O., Hunt, G.C., Larus, J.R., Levi, S.: Language support for fast and reliable message-based communication in Singularity OS. In: EuroSys (2006)Google Scholar
  7. 7.
    Gotsman, A., Berdine, J., Cook, B., Rinetzky, N., Sagiv, M.: Local reasoning for storable locks and threads. In: Shao, Z. (ed.) APLAS 2007. LNCS, vol. 4807, pp. 19–37. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  8. 8.
    Hoare, T., O’Hearn, P.: Separation logic semantics for communicating processes. Electron. Notes Theor. Comput. Sci. 212, 3–25 (2008)CrossRefGoogle Scholar
  9. 9.
    Hu, R., Yoshida, N., Honda, K.: Session-based distributed programming in java. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 516–541. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  10. 10.
    O’Hearn, P.W.: Resources, concurrency, and local reasoning. TCS 375(1-3), 271–307 (2007)zbMATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    Pym, D., Tofts, C.: A Calculus and logic of resources and processes. Formal Aspects of Computing 18(4), 495–517 (2006)zbMATHCrossRefGoogle Scholar
  12. 12.
    Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: LICS 2002 (2002)Google Scholar
  13. 13.
    Takeuchi, K., Honda, K., Kubo, M.: An Interaction-Based Language and Its Typing System. LNCS, p. 398. Springer, Heidelberg (1994)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Jules Villard
    • 1
  • Étienne Lozes
    • 1
  • Cristiano Calcagno
    • 2
  1. 1.LSV, ENS Cachan, CNRS 
  2. 2.Imperial CollegeLondon

Personalised recommendations