Exception handling for copyless messaging

  • Authors:
  • Svetlana Jakšić;Luca Padovani

  • Affiliations:
  • Univerzitet u Novom Sadu, Novi Sad, Serbia;Università di Torino, Torino, Italy

  • Venue:
  • Proceedings of the 14th symposium on Principles and practice of declarative programming
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Copyless messaging is a communication mechanism in which only pointers to messages are exchanged between sender and receiver processes. Because of its intrinsically low overhead, copyless messaging can be profitably adopted for the development of complex software systems where processes have access to a shared address space. However, the very same mechanism fosters the proliferation of programming errors due to the explicit use of pointers and to the sharing of data. In this paper we study a type discipline for copyless messaging that, together with some minimal support from the runtime system, is able to guarantee the absence of communication errors, memory faults, and memory leaks in presence of exceptions. To formalize the semantics of processes we draw inspiration from software transactional memories: in our case a transaction is a process that is meant to accomplish some exchange of messages and that should either be executed completely, or should have no observable effect if aborted by an exception.