Types and Programming Languages
Benjamin C. Pierce
Writing baby interpreters using OCaml for the funny languages (include lambda calculus!) used in the theoretic chapters is a pretty cool idea and I really like it.
Elementary discrete mathematics and first-order logic are required for grokking the maths materials through out the book though. If you don't have enough patience to deal with math symbols, theorems, and formal proving, then this is not the right book for you ;)
IHMO, this is a highly comprehensible book for introducing lambda-calculus and type theory to readers without much background knowledge in either abstract algebra or theoretic computer science (like me ;)). I've been looking for such a book for long, in fact :)
Besides, this was the very book which directly inspired the birth of Pugs (a Perl 6 interpreter/compiler in Haskell) according to Audrey, the Pugs project's leader.
Highly recommended!
Ссылка удалена правообладателем
----
The book removed at the request of the copyright holder.