This research project is exploring a new way of writing computer programs, based on a new programming language Plaid. Plaid is the first programming language to incorporate "permissions" natively into the language. These permissions allow the programming language to more accurately model things that change--for example, a connection to a web site that might be interrupted and then later reconnected. Such a permission-based language helps engineers coordinate on a software project, making engineers more productive, and reducing bugs that end-users see.

On a technical level, the project integrates permissions such as "unique," "immutable," and "shared" into the language via a new kind of type system, based on linear logic. These permissions express aliasing information, and this aliasing information can be leveraged to do many things, including safely changing the representation of objects at run time and automatically parallelizing code. The project is investigating the design of a single permission system that can address multiple such concerns; investigating how models of inheritance, composition, sub typing, casts, and polymorphism must be adapted to handle permissions; and what design choices can best make such a language practical for writing programs of significant scale and design complexity.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Type
Standard Grant (Standard)
Application #
1116907
Program Officer
Anindya Banerjee
Project Start
Project End
Budget Start
2011-08-01
Budget End
2015-07-31
Support Year
Fiscal Year
2011
Total Cost
$500,000
Indirect Cost
Name
Carnegie-Mellon University
Department
Type
DUNS #
City
Pittsburgh
State
PA
Country
United States
Zip Code
15213