Es kommt darauf an, wie tief du gehen willst und wie viel du bereits weißt. Für einen Anfänger ist Winksel's Buch wirklich schön, aber ja, es führt Sie nicht in den Stand der Semantik ein, wie er vor ungefähr 20 Jahren geschrieben wurde. Trotzdem ist es immer noch eine gute erste Einführung in das Thema. Es könnte sich auch lohnen, darauf hinzuweisen, dass T. Nipkow einen wesentlichen Teil von Winskels Buch in Isabelle / HOL formalisiert hat, siehe hier . Wenn Sie also lernen möchten, interaktive Proof-Assistenten zu verwenden und die Semantik von Programmiersprachen zu verstehen, müssen Sie auf eine Menge zusammenhängenden Materials zurückgreifen.
Andere Bücher, die fortgeschrittener sind, sind:
Gunter, Semantik der Programmiersprachen , ein fortgeschritteneres Buch, das sich mit denotationaler Semantik befasst, einem Ansatz zur Semantik, der die Erwartungen nicht erfüllt. Konzentriert sich auf rein funktionale Sprachen und ignoriert Parallelität. Dies ist das Buch, von dem ich mir als Student Semantik beigebracht habe, und im Nachhinein wünschte ich, ich hätte stattdessen Winksel's Buch verwendet. Für einen Anfänger ist Gunter keine einfache Lektüre.
Domains und Lambda-Kalküle von Amadio und Curien. Ein weiteres Buch, das mehr in der domänentheoretischen Tradition geschrieben wird, obwohl es Prozesskalküle behandelt.
John Mitchells Bücher, die bereits oben erwähnt wurden. Meist geht es auch um sequentielle Berechnungen.
Bücher wie Pierces TAPL sind sehr schön, konzentrieren sich jedoch eng auf einen Aspekt der Programmiersprachen, nämlich die Typen, die so wichtig sind. Ich würde es nicht als erste Einführung in den allgemeinen Bereich der Programmiersprachen empfehlen, aber es ist obligatorisch, für alle zu lesen, die etwas über Typen lernen möchten.
Um ehrlich zu sein, ich denke, es gibt derzeit kein aktuelles Einführungsbuch zur Sprachsemantik, das die erheblichen Fortschritte des letzten Jahrzehnts widerspiegelt, mit seiner entscheidenden Verlagerung von Denotationsmethoden und sequentiellen Berechnungen hin zur Nebenläufigkeit (Prozesskalküle und Spielesemantik). , Axiomatik-Semantik und die Verwendung interaktiver Proof-Assistenten bei der Verifikation.
Update 22. April 2014: Tobias Nipkow und Gerwin Klein haben ein neues Buch veröffentlicht
was als "Winskel in Isabelle / HOL" gesehen werden kann. Es ist eine Einführung in die Semantik von Programmiersprachen (hauptsächlich operationell und axiomatisch), aber im Gegensatz zu früheren Ansätzen auf Stift- und Papierbasis bringt dieses Buch all seine Mathematik in Isabelle / HOL zum Ausdruck. Mit anderen Worten, es ist gleichzeitig ein Buch über das Beweisen von Theoremen.
Das Buch ist brandneu, daher habe ich es nicht zum Unterrichten verwendet, aber es eignet sich sehr gut als Einführung, die niedriger ist als die von Software Foundations
von Pierce et al.