Tout dépend de la profondeur à laquelle vous voulez aller et de ce que vous savez déjà. Pour un débutant, le livre de Winksel est vraiment sympa, mais oui, il ne vous présente pas l'état de l'art en sémantique tel qu'il a été écrit il y a environ 20 ans. Néanmoins, c'est toujours une bonne première introduction au sujet. Il pourrait également être utile de souligner que T. Nipkow a officialisé une partie substantielle du livre de Winskel dans Isabelle / HOL, voir ici . Donc, si vous voulez apprendre à utiliser des assistants de preuve interactifs avec la compréhension de la sémantique des langages de programmation, vous avez beaucoup de matériel cohérent à utiliser.
D'autres livres plus avancés sont:
Gunter, Semantics of Programming Languages , un livre plus avancé axé sur la sémantique dénotationnelle, une approche de la sémantique, qui n'a pas répondu aux attentes. Se concentre sur des langues purement fonctionnelles et ignore la concurrence. C'est le livre à partir duquel j'ai appris la sémantique en tant que premier cycle, et rétrospectivement, j'aurais préféré utiliser le livre de Winksel à la place. Gunter n'est pas une lecture facile pour un débutant.
Domaines et lambda-calculi par Amadio et Curien. Un autre livre à venir écrit plus dans la tradition de la théorie des domaines, bien qu'il discute des calculs de processus.
Les livres de John Mitchell qui ont déjà été mentionnés ci-dessus. Ils concernent également principalement le calcul séquentiel.
Des livres comme TAPL de Pierce sont très agréables, mais se concentrent étroitement sur un aspect des langages de programmation, à savoir les types, aussi importants soient-ils. Je ne le recommanderais pas comme une première introduction au domaine général des langages de programmation, mais il est obligatoire de le lire pour quiconque souhaite en savoir plus sur les types.
À vrai dire, je pense qu'il n'y a actuellement aucun livre d'introduction à jour sur la sémantique des langues qui reflète les progrès substantiels de la dernière décennie, avec son passage décisif des méthodes de dénotation et du calcul séquentiel à la concurrence (calculs de processus et sémantique des jeux) , la sémantique axiomatique et l'utilisation d'assistants de preuve interactifs dans la vérification.
Mise à jour 22. Avril 2014: Tobias Nipkow et Gerwin Klein ont publié un nouveau livre
qui peut être vu comme «Winskel in Isabelle / HOL». C'est une introduction à la sémantique des langages de programmation (principalement opérationnels et axiomatiques) mais contrairement aux précédentes approches sur papier et stylo, ce livre exprime toutes ses mathématiques en Isabelle / HOL. En d'autres termes, c'est en même temps un livre sur la démonstration des théorèmes.
Le livre est tout neuf, donc je ne l'ai pas utilisé pour l'enseignement, mais il semble vraiment convenir comme une introduction qui est présentée à un niveau inférieur à Software Foundations
par Pierce et al.