Structure and Interpretation of Computer Programs
by Harold Abelson, Gerald Jay Sussman, Julie Sussman
Publisher: McGraw-Hill 1996
Number of pages: 588
Abelson and Sussman's classic Structure and Interpretation of Computer Programs teaches readers how to program by employing the tools of abstraction and modularity. The authors' central philosophy is that programming is the task of breaking large problems into small ones. The book spends a great deal of time considering both this decomposition and the process of knitting the smaller pieces back together.
Home page url
Download or read it online for free here:
by Doug Hoyte - Lulu.com
One of the most hardcore computer programming books out there. Starting with the fundamentals, it describes the most advanced features of the most advanced language: Common Lisp. This book is about macros, that is programs that write programs.
by Morten Heine B. Sorensen, Pawel Urzyczyn - Elsevier Science
This book give an introduction to parts of proof theory and related aspects of type theory relevant for the Curry-Howard isomorphism. It can serve as an introduction to any or both of typed lambda-calculus and intuitionistic logic.
by William R. Cook - UT Austin
This document is a series of notes about programming languages, originally written for students of the undergraduate programming languages course at UT. It assumes knowledge of programming, and in particular assume basic knowledge of Haskell.
by Tobias Nipkow, Gerwin Klein - Springer
The book teaches the reader the art of precise logical reasoning and the practical use of a proof assistant as a tool for formal proofs about computer science artefacts. All the mathematics is formalised in Isabelle and much of it is executable.