Programming language semantics: It’s easy as 1,2,3