Git Product home page Git Product logo

10pl's Introduction

10PL

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

What

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.

Why

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


changelog

  • 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

10pl's People

Contributors

mfelleisen avatar bennn avatar cmeiklejohn avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.