1It should be noted that “MiniJava” was designed as a simple imperative programming language whose concrete syntax and semantics is immediately familiar to many programmers and can thus represent the basis for understanding formal specifications of imperative languages. It is not designed as the starting point of the specification of full Java.