Fashions in programming languages change continually. But the best way to stay up to date is not to study the latest fashion; it’s to master the timeless ideas that underlie all languages, even the most complicated.
This is the web site for Programming Languages: Build, Prove, and Compare: a text that distills timeless languages and their design ideas into easy-to-learn “bridge” languages implemented by interpreters whose key parts are explained in the text. The book goes deep into the roots of both functional and object-oriented programming, highlighting timeless ideas like functions, types, polymorphism (generics), modules, and objects.
The book is not just about programming-language ideas; it is also about how programmers use them effectively. Through concepts, examples, and more than 300 practice exercises that exploit the bridge languages and their interpreters, students learn not only what programming-language features are but also what they can do. Substantial implementation projects include Milner’s type inference, both copying and mark-and-sweep garbage collectors, and arithmetic on arbitrary-precision integers.
Things you can do right now:
Read the online Supplement to the textbook. (The Supplement includes additional topics plus documentation of all the code.) Its SHA1 checksum is
f33a0baa70d1368f2f34d1fb80fa7cacb2afea76
.- Download source code intended for students:
build-prove-compare-2023-05-18.tgz
(SHA1 checksum55963a65c93eefc1baea957a384c934b2668c4a5
)build-prove-compare-2023-05-18.zip
(SHA1 checksum7e06fa3bbab8b0167d2c664a958d0e6d87e04541
)
Get source code from the student github repository or report a problem with the code or the book.
Read my public-key signature on the checksums.
Things that will be possible one day:
- Search the book.