Mon 20 - Fri 24 October 2014 Portland, Oregon, United States
Tue 21 Oct 2014 16:15 - 16:37 at Salon D - Session 4 Chair(s): Thomas LaToza

Plaid is a research programming language with a focus on typestate, permissions, and concurrency. Typestate describes ordering constraints on method calls to an object; Plaid incorporates typestate into both its object model and its type system. Permissions, incorporated into Plaid’s type system and runtime, describe whether a reference can be aliased and whether aliases can change that reference. Permissions support static typestate checking, but they also allow Plaid’s compiler to automatically parallelize Plaid code. In this paper, we describe the usability-related hypotheses that drove the design of Plaid. We describe the evidence, both informal and scientific, that inspired and (in some cases) validated these hypotheses, and reflect on our experience designing and validating the language.