10 papers that all PhD students in programming languages ought to know, for some value of 10
Latest commit 01c8e94 Nov 5, 2015 @mfelleisen mfelleisen added Plotkin/LCF
Failed to load latest commit information.
README.md Amal's white ball Oct 21, 2015
mf-s-list.md added Plotkin/LCF Nov 5, 2015
spill.md Amal's white ball Oct 21, 2015



10 papers that all PhD students in programming languages ought to know, for some value of 10


Programming language researchers investigate the analysis, design, implementation, and evaluation of programming languages. Our goal is that the papers come from all of these areas.


A paper makes it on this list if one of us proposes the paper and none of the others disagrees.

A paper may make it on the list if it is a milestone in the intellectual history of programming languages, if it is a good paper, and if its ideas are still good today.

A paper may make it on the list if it covers an area particularly well.

A paper may make it on the list if a PhD student in PL should know about this topic---even if it is outside of the confines of PL.

A paper on this list may not be not essential to obtaining a PhD in PL. It is unlikely to introduce you to modern ways of dealing with a topic. It is unlikely to be fashionable. It is improbable that you will cite it in your dissertation. But, all of us consider it worth your while. Reading it is good for your soul.

The List of Papers

[listed in alphabetical order of the first author's last name]

L. Cardelli. Type systems. Handbook of Computer Science and Engineering, 1997, 2208-2236. url

C. Chambers and D. Ungar. Customization: Optimizing Compiler Technology for SELF, a Dynamically-typed Object-oriented Programming Language. PLDI 1989, 146--160. url

P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. Principles of Programming Languages, 1977, 238--252. url

C.A.R. Hoare. An axiomatic basis for computer programming. Communications of the ACM, 1969, 12(10), 576-–580. url

C.A.R. Hoare. Proof of correctness of data representations. Acta Informatica, 1972, 1, 271--281. url

G.A. Kildall A Unified approach to global program optimization. Principles of Programming Languages, 1973, 194--206. url

P.J. Landin The next 700 programming languages. Communications of the ACM, 1966, 9(3), 157--166. url

J.H. Morris, Jr. and Ben Wegbreit. Subgoal induction. Communications of the ACM, 1977, 20(4), 209--222. url

G. Morrisett, D. Walker, K. Crary, and N. Glew. From system F to typed assembly language. Transactions on Programming Languages and Systems, 1999, 21 (3), 527--568. url

D.L. Parnas On the criteria to be used in decomposing systems into modules. Communications of the ACM, 1972, 15(12), 1053--1058. url

G.D. Plotkin. Call-by-name, call-by-value, and the λ-calculus. Theoretical Computer Science 1 (1975), 125--159. url


  • Tue Oct 20 23:06:27 EDT 2015 " added Amal's "white ball"
  • Tue Oct 20 21:13:13 EDT 2015 " added "modules", removed "Reynolds" based on discussion by Amal, Olin, and Matthias; added Olin's choices
  • Tue Oct 20 16:59:02 EDT 2015 " added Mitch's suggestions
  • Fri Oct 16 12:47:38 EDT 2015 " added Will's suggestions
  • Fri Oct 16 09:48:17 EDT 2015 Matthias creates and populates the repository with Amal's, Jan's, and his own ideas