Mathematically rigorous books on programming and computer science

I would like a mathematical approach to programming languages and computer science, not just the theoretical aspects of computer science.

This sounds like you want a more formal book about programming languages themselves from a mathematical perspective, rather than the more standard "undergrad" CS theory (algorithmics, complexity theory, data structures analysis, etc...).

I think, however, it is very useful to know the basics of computability theory (automata, regular languages, Turing machines, Lambda calculus, context-free grammars, etc...), before looking at this area. Understanding compilers/interpreters deeply also requires it. (PS: for many graduate CS courses at most major universities, they have a publicly available syllabus/website with book recommendations present; it can be useful to check them).

Anyway, many mathematical treatments of programming languages tend to come from a type theory and lambda calculus approach, which allow formalizing programming and the language itself. This is particularly prevalent among introductions to functional programming languages (a fact which may not be appreciated by all its would-be users).

Two popular books that somewhat follow this approach are:

  • Types and Programming Languages by Pierce

  • An Introduction to Functional Programming Through Lambda Calculus by Michaelson

Note that the former book does not neglect Object-Oriented Programming. There are also other angles to look at, however, which tend more formalized from a logic perspective, such as operational semantics (e.g., this book).

Related: [1], [2], [3], [4].


How about "The art of computer programming" by Donald Knuth?