  This article presents a formalisation of a simple imperative programming
language. The objective is to study and develop "hands-on" a formal
specifcation of a programming language, namely its syntax, operational
semantics and type system. To have an executable version of the language, we
implemented in Racket its operational semantics and type system.
