Proving Copyless Message Passing
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.
KeywordsMessage Passing Proof System Memory State Parallel Composition Separation Logic
Unable to display preview. Download preview PDF.
- 5.Calcagno, C., O’Hearn, P., Yang, H.: Local action and abstract separation logic. In: 22nd LICS, pp. 366–378 (2007)Google Scholar
- 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
- 12.Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: LICS 2002 (2002)Google Scholar
- 13.Takeuchi, K., Honda, K., Kubo, M.: An Interaction-Based Language and Its Typing System. LNCS, p. 398. Springer, Heidelberg (1994)Google Scholar