Connecting effects and uniqueness with adoption

  • Authors:
  • John Tang Boyland;William Retert

  • Affiliations:
  • University of Wisconsin--Milwaukee, Milwaukee, WI;University of Wisconsin--Milwaukee, Milwaukee, WI

  • Venue:
  • Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

"Adoption" is when on piece of stat is logically embedded in another piece of state. Adoption provides information hiding (the adopter can be used as a proxy for the adoptee) and with linear existentials, provides a way to store unique pointers in shared state. In this paper, we give an operational semantics of adoption in a simple procedural language with pointers to records. We define a "permission" type-system that uses adoption to model both effects and uniqueness. We prove type soundness (well-typed programs don't go wrong) and state separation (separately-typed statements cannot access the same state). Then we show how high-level effects and uniqueness annotations can be expressed in the type-system. The distinction between read and write effects is ignored in the body of this paper.