Featherweight Java: A Minimal Core Calculus for Java and GJ (2002) [pdf]  (cis.upenn.edu)