This book sets unites the various formalisms that define a programming language: ‘small steps’ operational semantics, ‘big steps’ operational semantics, and denotational semantics. It illustrates them with typical features of programming languages.