skip to main content
10.1145/2048147.2048197acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
poster

Plaid: a permission-based programming language

Authors Info & Claims
Published:22 October 2011Publication History

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.

References

  1. J. Aldrich et al. Permission-based programming languages. In ICSE (NIER track), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. J. Aldrich, J. Sunshine, D. Saini, and Z. Sparks. Typestate-Oriented Programming. In Onward!, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. Boyland, J. Noble, and W. Retert. Capabilities for sharing: A generalization of uniqueness and read-only. In ECOOP, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. Stork, P. Marques, and J. Aldrich. Concurrency by Default: Using Permissions to Express Dataflow in Stateful Programs. In Onward!, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Plaid: a permission-based programming language

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader