Все зависит от того, насколько глубоко вы хотите зайти, и сколько вы уже знаете. Для новичка книга Винксела действительно хороша, но да, она не знакомит вас с современным уровнем семантики, как она была написана около 20 лет назад. Тем не менее, это хорошее первое знакомство с предметом. Также стоит отметить, что Т. Нипков официально оформил значительную часть книги Уинкеля в Изабель / HOL, см. Здесь . Поэтому, если вы хотите научиться использовать интерактивные помощники по проверке вместе с пониманием семантики языков программирования, у вас есть много связного материала, на который можно опираться.
Другие книги, которые являются более продвинутыми:
Гюнтер, Семантика языков программирования , более продвинутая книга, посвященная денотационной семантике, подход к семантике, который не оправдал ожиданий. Фокусируется на чисто функциональных языках и игнорирует параллелизм. Это книга, из которой я изучал семантику как студент, и, оглядываясь назад, я бы хотел использовать книгу Винксела. Гюнтер не легок для начинающих.
Домены и лямбда-исчисления Амадио и Кюриена. Еще одна книга, написанная больше в области теоретико-предметной традиции, хотя в ней обсуждаются исчисления процессов.
Книги Джона Митчелла, которые уже упоминались выше. Они также в основном касаются последовательных вычислений.
Такие книги, как TAPL Пирса, очень хороши, но сосредоточены на одном аспекте языков программирования, а именно на типах, как бы они ни были важны. Я не рекомендовал бы это как первое введение в общую область языков программирования, но это обязательно для чтения любому, кто хочет узнать о типах.
По правде говоря, я думаю, что в настоящее время нет современной вводной книги по семантике языка, которая отражала бы существенный прогресс, достигнутый за последнее десятилетие, с его решительным переходом от денотационных методов и последовательных вычислений к параллелизму (исчисления процессов и игровая семантика) , аксиоматика семантики и использование интерактивных доказательств помощников при проверке.
Обновление 22. Апрель 2014: Тобиас Нипков и Джервин Кляйн опубликовали новую книгу
который можно увидеть как «Winskel in Isabelle / HOL». Это введение в семантику языков программирования (прежде всего операционного и аксиоматического), но в отличие от предыдущих подходов, основанных на ручке и бумаге, эта книга выражает всю свою математику в Изабель / HOL. Другими словами, это книга о доказательстве теорем.
Книга совершенно новая, поэтому я не использовал ее для преподавания, но она выглядит действительно подходящей как введение, которое представлено на более низком уровне, чем Software Foundations
от Pierce et al.