Practical Foundations for Programming Languages
by Robert Harper
Publisher: Carnegie Mellon University 2016
Number of pages: 228
Description:
This is a working draft of a book on the foundations of programming languages. The central organizing principle of the book is that programming language features may be seen as manifestations of an underlying type structure that governs its syntax and semantics. The emphasis, therefore, is on the concept of type, which codifies and organizes the computational universe in much the same way that the concept of set may be seen as an organizing principle for the mathematical universe. The purpose of this book is to explain this remark.
Download or read it online for free here:
Download link
(1.2MB, PDF)
Similar books
Formal Syntax and Semantics of Programming Languagesby Kenneth Slonneger, Barry L. Kurtz - Addison Wesley Longman
The book presents the typically difficult subject of formal methods in an informal, easy-to-follow manner. Readers with a basic grounding in discreet mathematics will be able to understand the practical applications of these difficult concepts.
(18997 views)
The Design and Implementation of Probabilistic Programming Languagesby Noah D. Goodman, Andreas Stuhlmüller - dippl.org
This book explains how to implement PPLs by lightweight embedding into a host language. We illustrate this by designing WebPPL, a small PPL embedded in Javascript. We show how to implement several algorithms for universal probabilistic inference.
(9013 views)
Lecture Notes on the Lambda Calculusby 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.
(14136 views)
Semantics of Programming Languagesby Andrew M. Pitts - University of Cambridge
These notes introduce the structural, operational approach to programming language semantics. The course shows how to specify the meaning of some simple programming language constructs and to reason formally about semantic properties of programs.
(12018 views)