Ocena:

Książka jest chwalona za wysokiej jakości materiał i głęboką wiedzę autora w zakresie teorii języków programowania. Wielu czytelników uważa ją jednak za zbyt złożoną i nieprzyjazną dla użytkownika, powołując się na brak intuicji w wyjaśnieniach i duże poleganie na formalnych dowodach.
Zalety:⬤ Wysokiej jakości materiał i piękna prezentacja
⬤ zwięzłe i dokładne definicje
⬤ autorytatywna wiedza od autora
⬤ szczegółowe przykłady kodu i metodologia programowania
⬤ wciągająca tematyka.
⬤ Mało przyjazna dla użytkownika
⬤ zbyt abstrakcyjna w niektórych fragmentach
⬤ niewystarczająco intuicyjne wyjaśnienia
⬤ duże poleganie na formalnych dowodach
⬤ może być myląca bez dodatkowego wsparcia ze strony instruktorów.
(na podstawie 5 opinii czytelników)
Practical Foundations for Programming Languages
Tekst ten rozwija kompleksową teorię języków programowania opartą na systemach typów i strukturalnej semantyce operacyjnej. Pojęcia językowe są precyzyjnie zdefiniowane przez ich statyczną i dynamiczną semantykę, prezentując podstawowe narzędzia zarówno intuicyjnie, jak i rygorystycznie, opierając się jedynie na elementarnej matematyce.
Narzędzia te są wykorzystywane do analizowania i udowadniania właściwości języków oraz zapewniają ramy do łączenia i porównywania cech języków. Szeroki zakres pojęć obejmuje podstawowe typy danych, takie jak sumy i iloczyny, typy polimorficzne i abstrakcyjne, dynamiczne typowanie, dynamiczną wysyłkę, podtypowanie i typy rafinacji, symbole i dynamiczną klasyfikację, równoległość i semantykę kosztów oraz współbieżność i dystrybucję.
Metody te mają bezpośrednie zastosowanie do implementacji języka, rozwoju logiki do wnioskowania o programach oraz do formalnej weryfikacji właściwości języka, takich jak bezpieczeństwo typów. To gruntownie poprawione drugie wydanie zawiera ćwiczenia na końcu prawie każdego rozdziału oraz nowy rozdział poświęcony udoskonaleniom typów.