Plaid: a permission-based programming language

  • Authors:
  • Jonathan Aldrich;Robert Bocchino;Ronald Garcia;Mark Hahnenberg;Manuel Mohr;Karl Naden;Darpan Saini;Sven Stork;Joshua Sunshine;Éric Tanter;Roger Wolff

  • Affiliations:
  • Carnegie Mellon University, Pittsburgh, PA, USA;Carnegie Mellon University, Pittsburgh, PA, USA;Carnegie Mellon University, Pittsburgh, PA, USA;Carnegie Mellon University, Pittsburgh, PA, USA;Carnegie Mellon University, Pittsburgh, PA, USA & Karlsruhe Institute of Technology, Karlsruhe, Germany;Carnegie Mellon University, Pittsburgh, PA, USA;Carnegie Mellon University, Pittsburgh, PA, USA;Carnegie Mellon University, Pittsburgh, PA, USA;Carnegie Mellon University, Pittsburgh, PA, USA;University of Chile, Santiago, Chile;Carnegie Mellon University, Pittsburgh, PA, USA

  • Venue:
  • Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Access permissions (permissions for short) are a lightweight way to specify how an object may be aliased and whether aliases allow mutation. Prior work has demonstrated the value of permissions for addressing many software engineering concerns, including information hiding, protocol checking, concurrency, security, and memory management. We propose a permission-based programming language: that is, a language whose object model, type system, and runtime are all co-designed with permissions in mind. The key elements of such a language are (1) an object model in which the structure of an object can change over time; (2) a type system that tracks changing structure in addition to addressing concerns such as those listed above; and (3) a runtime system that dynamically checks permission assertions and leverages permissions to parallelize code. We sketch the design of the permission-based programming language Plaid and argue that the approach promises significant software engineering benefits.