Structure and Interpretation of Computer Programs
by Harold Abelson, Gerald Jay Sussman, Julie Sussman
Publisher: McGraw-Hill 1996
Number of pages: 657
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 Andrea Asperti, Giuseppe Longo - MIT Press
Here is an introduction to category theory for the working computer scientist. It is a self-contained introduction to general category theory and the mathematical structures that constitute the theoretical background.
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 A. Filinski, R. Gluck, N. D. Jones - Datalogisk Institut
This text concerns several dimensions of programming languages. We will emphasize precise definitions of the effects of various programming language features, the semantics and implementation of programming languages, and proofs concerning programs.
by Shriram Krishnamurthi - Brown University
Many people would regard this as being two books in one. One book is an introduction to programming, teaching you basic concepts of organizing data and the programs that operate over them. The other book is an introduction to programming languages.