The Plaid programming language
Plaid is a new general-purpose object-oriented language currently being designed. It is a response to some of the large-scale changes in computing we see today. First, the rise of ultra-large scale systems puts a premium on building more reliable and secure web systems out of distributed and outsourced components. Second, the emerging generation of multicore chips means that performance-critical applications must effectively leverage concurrency. Third, today's applications are built upon ever more powerful libraries and frameworks, creating major challenges in ensuring those components are used correctly together. We have written a paper for Onward! 2009:
- State-Oriented Programming. Jonathan Aldrich, Joshua Sunshine, Darpan Saini, and Zachary Sparks. In Proceedings of Onward!, 2009.
Some components of Plaid may include:
- language support for robust and open distributed systems, leveraging architectural abstractions and reflective or generative proxies
- permission systems for modeling and controlling state changes, extending our current typestate work to concurrency, distributed systems, and more powerful properties
- a new object model that facilitates extension, modularization of crosscutting framework concerns, state-based verification, and conversion to/from XML schemas
- declarative definitions (e.g. of a user interface or framework configuration) and effective analysis of them
We are currently looking for new Ph.D. students to work on the Plaid project. Please apply to the CMU Ph.D. program in Software Engineering (my primary affiliation) or Computer Science (I also advise CS students).
Research projects are also available for CMU undergraduate and masters students. Contact Jonathan Aldrich if you are interested.