CS 3366 Programming Languages
Spring 2017

Computer Science Department
The Morrissey College of Arts and Sciences
Boston College

About Staff Textbook Grading Canvas Calendar Notes
GitHub Piazza Resources OCaml StdLib Pervasives Manual
This course is largely self-contained but it would be helpful to read a textbook on the subject to get another perspective and to broaden your understanding. Of the books listed below Mitchell's book is fairly widely used for undergraduate courses in programming languages. The other books are a little more advanced and more commonly used for first-year graduate students. All are truly excellent.

Concepts in Programming Languages, by John C. Mitchell. (Recommended)

This is an excellent overview of programming languages by one of the leaders in the field, John Mitchell. It was developed for an undergraduate course on programming languages taught at Stanford. Our course will not follow this book directly, but there is a good deal of overlap and the book can add a lot to your understanding of programming languages.

CIPL is on reserve in the O'Neill Library and it is available through Amazon, $82 new, $47 used.
Practical Foundations for Programming Languages, by Robert W. Harper. (Advanced Study, Not required but highly recommended)

This is the comprehensive vision of programming languages and software by the single most knowledgable person in the world on the subject. To quote the author, his aim for the book: "a comprehensive framework for formulating and analyzing a broad range of ideas in programming languages. If language design and programming methodology are to advance from a trade-craft to a rigorous discipline, it is essential that we first get the definitions right. Then, and only then, can there be meaningful analysis and consolidation of ideas." Anything at all by Harper is worth reading carefully.

PFPL is available through Cambridge University Press or through Amazon. There is a free abridged version available through the author's website.
Types and Programming Languages, by Benjamin C. Pierce. (Advanced Study)

TAPL is an excellent but more advanced book by another leader in the field. TAPL provides a more theoretical and less implementation-oriented approach to PL than our course. It would be a good entree to graduate study in the field.

TAPL is on reserve in the O'Neill Library and is available through Amazon for about $51, a great investment for the serious computer science student.
Software Foundations, by Benjamin C. Pierce. (Advanced Study)

Technically speaking, Software Foundations isn't a textbook for an undergraduate course in programming languages. But it is quite relevant. To quote the author, the book covers "... the mathematical underpinnings of reliable software. Topics include basic concepts of logic, computer-assisted theorem proving, the Coq proof assistant, functional programming, operational semantics, Hoare logic, and static type systems. The exposition is intended for a broad range of readers, from advanced undergraduates to PhD students and researchers. No specific background in logic or programming languages is assumed, though a degree of mathematical maturity will be helpful."

This book is freely avaiable.
Created on 01-09-2017 19:04.