Boken 'Practical Foundations for Programming Languages' gir en grundig utvikling av en teori for programmeringsspråk basert på typesystemer og strukturert operasjonssemantikk. Forfatteren definerer språkets konsepter med presisjon gjennom både statisk og dynamisk semantikk, og presenterer de grunnleggende verktøyene på en intuitiv, men samtidig stringent måte ved å basere seg på elementær matematikk. Disse verktøyene anvendes til å analysere og bevise egenskaper ved språk, og gir et rammeverk for å kombinere og sammenligne ulike språkfunksjoner. Boken dekker et bredt spekter av konsepter, inkludert grunnleggende datatyper som summer og produkter, polymorfe og abstrakte typer, dynamisk typing, dynamisk dispatch, subtype- og raffinerte typer, symboler og dynamisk klassifikasjon, parallellisme og kostsemantikk, samt samtidighet og distribusjon. Metodene som presenteres er direkte anvendbare for implementering av språk, utvikling av logikker for resonnering om programmer, og for formell verifikasjon av språke egenskaper som type-sikkerhet. Denne grundig reviderte andre utgaven inkluderer oppgaver for å styrke forståelsen.