Lightweight Affinity and Object Capabilities in Scala

LaCasa is a type system and programming model to enforce the object capability discipline in Scala, and to provide unique object references. One important application of LaCasa's type system is software isolation of concurrent processes. Isolation is important for several reasons including security and data-race freedom. Moreover, LaCasa's unique references enable efficient, by-reference message passing while guaranteeing a "deep-copy" semantics. This deep-copy semantics enables programmers to seamlessly port concurrent programs running on a single machine to distributed programs running on large-scale clusters of machines.