Dipende tutto da quanto vuoi andare in profondità e quanto sai già. Per un principiante, il libro di Winksel è davvero bello, ma sì, non ti sta introducendo allo stato dell'arte della semantica come è stato scritto circa 20 anni fa. Tuttavia è ancora una buona prima introduzione all'argomento. Potrebbe anche valere la pena sottolineare che T. Nipkow ha formalizzato una parte sostanziale del libro di Winskel in Isabelle / HOL, vedi qui . Quindi, se vuoi imparare a usare gli assistenti di correzione interattivi insieme alla comprensione della semantica dei linguaggi di programmazione, hai molto materiale coerente su cui attingere.
Altri libri più avanzati sono:
Gunter, Semantics of Programming Languages , un libro più avanzato incentrato sulla semantica denotazionale, un approccio alla semantica, che non è stato all'altezza delle aspettative. Si concentra su linguaggi puramente funzionali e ignora la concorrenza. Questo è il libro da cui mi sono insegnato la semantica come studente universitario, e in retrospettiva vorrei invece aver usato il libro di Winksel. Gunter non è una lettura facile per un principiante.
Domini e lambda-calculi di Amadio e Curien. Un altro libro verrà scritto più nella tradizione teorica del dominio, anche se discute i calcoli dei processi.
I libri di John Mitchell che sono già stati menzionati sopra. Riguardano anche principalmente il calcolo sequenziale.
Libri come TAPL di Pierce sono molto belli, ma si concentrano strettamente su un aspetto dei linguaggi di programmazione, vale a dire i tipi, tanto importante quanto quello. Non lo consiglierei come prima introduzione all'area generale dei linguaggi di programmazione, ma è obbligatorio leggere per chiunque voglia conoscere i tipi.
A dire il vero, penso che attualmente non ci sia un libro introduttivo aggiornato sulla semantica del linguaggio che rifletta i sostanziali progressi dell'ultimo decennio, con il suo passaggio decisivo dai metodi denotazionali e dal calcolo sequenziale alla concorrenza (calcoli di processo e semantica di gioco) , semantica assiomatica e l'uso di assistenti di prova interattivi nella verifica.
Aggiornamento 22 aprile 2014: Tobias Nipkow e Gerwin Klein hanno pubblicato un nuovo libro
che può essere visto come "Winskel in Isabelle / HOL". È un'introduzione alla semantica dei linguaggi di programmazione (principalmente operativa e assiomatica) ma a differenza dei precedenti approcci basati su carta e penna, questo libro esprime tutta la sua matematica in Isabelle / HOL. In altre parole, è allo stesso tempo un libro sulla dimostrazione del teorema.
Il libro è nuovo di zecca quindi non ho usato per insegnare, ma sembra davvero adatto come introduzione che è lanciata a un livello inferiore rispetto a Software Foundations
di Pierce et al.