Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm interested in books that would introduce / explain the theory behind programming and programming languages. My logic is that by truly understanding the theory behind programming it will only take a few weeks to pick up new languages and implement some simple software.

As far as the type of books I'm looking for they would be similar to SICP.

I've done some research on this site and also on stack overflow. I know there are some large threads about books which discuss software architecture but I'm looking for information specific to programming. I have an okay understanding of Python which I've received from an into CS class on programming but I need to advance my knowledge.


share|improve this question

closed as not constructive by Robert Harvey, Caleb, Mark Trapp Nov 9 '11 at 21:20

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Despite the fact that there are some (admittedly very good) historical threads about books on SO, book recommendation questions are now generally considered off-topic. – Robert Harvey Nov 9 '11 at 17:40
That said, try studying lambda calculus, if you really want the Grand Unified Theory of programming. There isn't really any "secret decoder ring;" programming is a blissfully pragmatic profession. You learn best by doing. – Robert Harvey Nov 9 '11 at 17:51
Are you asking about theory of "How to do good programming?" or theory of "How programming languages work (inside the box)?" – Dipan Mehta Nov 9 '11 at 18:18
While certain types of book recommendation questions are on-topic here, this question is a bit too broad to be one of those. If there was a specific niche topic about programming where someone could supply you would the canonical book for it, that'd be something that could work here. – user8 Nov 9 '11 at 21:20
@MarkTrapp: Disagree. There is a well-defined theory of programming languages, with well-defined books in the field. – Paul Nathan Nov 9 '11 at 21:59

I took a course called Programming Language Concepts, which had two facets. The first was an overview of a number of different programming paradigms - functional, logic, object-oriented - which were taught using Scheme and Standard ML, Prolog, and Ruby when I took the course. The second facet of the course was about syntax, semantics, compilation, interpretation, and language features.

The textbook we used, which I thought was very well done, was Programming Language Pragmatics by Michael Scott. This book covers both sides of the course very well. You can't use it to learn a language well, but it discusses topics including parsing, interpretation and compilation, grammars, scope, binding, data representation, control flow, garbage collection, and quite a bit more. It does these through discussions of Perl, C++, Java, C#, Prolog, Ruby, and a few other languages.

If you are more interested in learning new paradigms and languages without so much of the theory behind languages, another option is The Pragmatic Programmers' Seven Languages in Seven Weeks. This book covers Ruby, Io, Prolog, Scala, Erlang, Clojure, and Haskell, with sample projects and tutorials.

share|improve this answer
Thanks mate...You have given me the link to what i was looking for but unable to put in words on here. BTW, does this book cover both the facets you talked in the answer ? – Pankaj Upadhyay Nov 9 '11 at 17:55
@Pankaj Yes, it does. – Thomas Owens Nov 9 '11 at 17:55