Home | Calendar | Readings | Example Source Code | Assignments

Vital Stats

John Lasseter


Class time—3:00 - 3:55 MWF

Lansing 301 Gulick 223

The following is a list of the supplementary readings, organized by topic. Very few of these are required for the class, but you may find some or all of them to be helpful. Where they are available, I've added links to online versions of the papers.

Inductive Definition and Proof
Excerpt from R. Floyd & R. Beigel, The Language Of Machines (link, password required)
Excerpt from R. Harper, Practical Foundations for Programming Languages (draft 2nd Ed.) (link, password required)
C Programming
Henning Shulzrinne, C For Java Programmers (link): PDF of slides from a class lecture and an excellent outline of the main things to learn about the language.
A useful C/C++ language reference
M. Banahan, D. Brady, and M. Doran, The C Book (book-length tutorial reference).
Functional Programming
John Backus, Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs, Communications of the ACM 21(8):613–641, August 1978.
Java FP Constructs
"Java 8 Lambda Expressions Tutorial With Examples" (Viral Patel)
java.util.function package (Java 8)
Michael Schwartzbach, Polymoprhic Type Inference [link (PDF)]
Luis Damas and Robin Milner, "Principal Type Schemes for Functional Programs", Proc. of the 1982 ACM Symposium on Principles of Programming Languages, 207–212.

Showed that Algorithm W discovers the principal type of a program.

Robin Milner, "A Theory of Type Polymorphism in Programming", Journal of Computer and System Sciences 17, 348–375 (1978).

Type inference was first discovered by Hindley in the 1960s, but its incorporation in ML came from this independently-developed work. The paper introduces the inference algorithm W, and proves both syntactic and semantic soundness of the resulting type system.

Harry G. Mairson, "Deciding ML Typability is Complete for Deterministic Exponential Time", POPL 1990, 382–401.
SML Tutorials
Programming in Standard ML '97 (Excellent though older online tutorial by Stephen Gilmore)
A Gentle Introduction to ML (A series of eight short lessons by Andrew Cumming. Going through all eight will give you most everything you need to know for this class.)
Programming in Standard ML (Free textbook by Robert Harper: more difficult to read, but comprehensive, with a nice set of examples)
Prolog Tutorials
Learn Prolog Now! (best larger tutorial I've seen)
Anthony Aaby's notes (plagiarized on about a dozen sites)
John Fisher's tutorial (better emphasis on practical programming considerations)
Misc. Resources
Ulle Endriss, An Introduction to Prolog Programming (another good tutorial book)
The λ Calculus
Lawrence Paulson, Foundations of Functional Programming
Peter Sestoft's Lambda Reducer web page.

Richard P. Gabriel, The Why of Y (PDF).