Static typed languages permit type errors to be caught at compile time.
var r : real begin (* error -- assignment of character to real *) r := 'x'; end