Practical Foundations for Programming Languages
by Robert Harper
Publisher: Carnegie Mellon University 2016
Number of pages: 580
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 codiļ¬es 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
![Book cover: Program Analysis (an Appetizer)](images/12393.jpg)
by Flemming Nielson, Hanne Riis Nielson - arXiv.org
This is an introduction to program analysis that is meant to be elementary. Rather than using flow charts as the model of programs, the book uses program graphs as the model of programs. This makes the underlying ideas more accessible to students.
(3508 views)
![Book cover: Programming Languages: Theory and Practice](images/9403.jpg)
by Robert Harper - Carnegie Mellon University
What follows is a working draft of a planned book that seeks to strike a careful balance between developing the theoretical foundations of programming languages and explaining the pragmatic issues involved in their design and implementation.
(11893 views)
![Book cover: Semantics of Programming Languages](images/8927.jpg)
by 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.
(9991 views)
![Book cover: Structure and Interpretation of Computer Programs](images/302.jpg)
by Harold Abelson, Gerald Jay Sussman, Julie Sussman - McGraw-Hill
The book teaches how to program by employing the tools of abstraction and modularity. The central philosophy is that programming is the task of breaking large problems into small ones. You will learn how to program and how to think about programming.
(18566 views)