Language Primitives and Type Discipline for Structured Communication-Based Programming
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
CONCUR '93 Proceedings of the 4th International Conference on Concurrency Theory
Alias Types for Recursive Data Structures
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Local Reasoning about Programs that Alter Data Structures
CSL '01 Proceedings of the 15th International Workshop on Computer Science Logic
Subtyping for session types in the pi calculus
Acta Informatica
Language support for fast and reliable message-based communication in singularity OS
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Global Progress in Dynamically Interleaved Multiparty Sessions
CONCUR '08 Proceedings of the 19th international conference on Concurrency Theory
Formal Methods for Web Services
Analyzing singularity channel contracts
Proceedings of the eighteenth international symposium on Software testing and analysis
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Proving Copyless Message Passing
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Linear type theory for asynchronous session types
Journal of Functional Programming
On progress for structured communications
TGC'07 Proceedings of the 3rd conference on Trustworthy global computing
Tracking heaps that hop with heap-hop
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Checking conformance of a producer and a consumer
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Reliable contracts for unreliable half-duplex communications
WS-FM'11 Proceedings of the 8th international conference on Web Services and Formal Methods
Hi-index | 0.00 |
We present a calculus that models a form of process interaction based on copyless message passing, in the style of Singularity OS. The calculus is equipped with a type system ensuring that well-typed processes are free from faults, leaks, and communication errors. The type system is essentially linear, but we show that linearity alone is inadequate. On the one hand, it is too strict when dealing with heap-allocated objects; on the other hand, it leaves room for scenarios where well-typed processes leak significant amounts of memory. We address these problems using dedicated types for keeping track of dereferenced pointers and by basing the type system upon an original variant of session types.