Programming Languages: Application and Interpretation
by Shriram Krishnamurthi
Publisher: Lulu.com 2007
Number of pages: 376
The book is the textbook for the programming languages course at Brown University, which is taken primarily by third and fourth year undergraduates and beginning graduate (both MS and PhD) students. It seems very accessible to smart second year students too, and indeed those are some of my most successful students. The book has been used at over a dozen other universities as a primary or secondary text. The book’s material is worth one undergraduate course worth of credit. The author wants to show students where languages come from, why we should regard languages as the ultimate form of abstraction, how to recognize such an evolving abstraction, and how to turn what they recognize into a language.
Home page url
Download or read it online for free here:
by Simon Peyton Jones, David Lester - Prentice Hall
This book gives a practical approach to understanding implementations of non-strict functional languages using lazy graph reduction. It is intended to be a source of practical material, to help make functional-language implementations come alive.
by Michael I. Schwartzbach - IT University of Copenhagen
These notes present principles and applications of static analysis of programs. We cover type analysis, lattice theory, control flow graphs, dataflow analysis, fixed-point algorithms, narrowing and widening, control flow analysis, pointer analysis.
by Mira Balaban - Ben-Gurion University of the Negev
This course is about building computational processes. We need computational processes for computing functions. The means for performing computational processes are programs. The emphasis is on programming languages and their properties.
by Peter Selinger - Dalhousie University
Topics covered in these notes include the untyped lambda calculus, the Church-Rosser theorem, combinatory algebras, the simply-typed lambda calculus, the Curry-Howard isomorphism, weak and strong normalization, type inference, etc.