Мне очень понравилось читать Концепции в языках программирования Джона Митчелла.
Книга охватывает всего понемногу. Он включает в себя введение в математические основы, такие как теория вычислимости и лямбда-исчисление, но я нашел его вполне читабельным (в то время, когда я читал его, что было в начале обучения в университете). Это также включает немного семантики языков программирования (то есть, как описать смысл формально).
Затем речь пойдет о многих языках программирования и концепциях, которые они исходят и которые интересны, включая LISP (который является основой для Clojure), ML (основа для Microsoft F #), а также Simula и Smalltalk (два основных языка OO) C ++ с Java (практические ОО языки с совершенно другим подходом). Также есть несколько заметок о различных подходах к параллелизму (довольно важно в наше время!)
В нем мало подробностей, и он охватывает широкий круг тем, которые я считаю полезными, если вы хотите прочитать его, чтобы получить широкий обзор теории языка программирования. Книга на самом деле мотивировала мой текущий интерес к языкам программирования: -).
Я заметил, что в книге есть некоторые негативные отзывы об Amazon, но, похоже, большинство из них от людей, которые должны были пройти курс Митчелла по этой книге и ему не понравился курс.