Classic Papers

The following is a (non-exhaustive) list of papers I think are particularly important in the areas where I work. They are a good starting point for students who do research with me. I have tried to choose papers that are not just influential, but still a good source for the material for junior students. At the bottom of this page is a list of selected papers from my own research group--not old enough to be "classic" but important for understanding the work we're currently doing.

Object-Oriented Programming

Functional Programming

Type Systems

Verification

Program Analysis for Software Engineering

Typestate

Ownership

Aspect-Oriented Programming

Secure Software Engineering

Reuse

Two especially successful models of reuse are componentized applications and frameworks:

Distributed Objects

Key Plaid Papers

These are not-yet-classic papers that are highly relevant to our ongoing research, especially with respect to the Plaid language design.