Strict enforcement of
type rules with no
exceptions. Incorrect type usage can be detected either at
run time or at
compile time. Strong typing catches more
type errors than
weak typing, resulting in fewer hard
errors. In a strongly typed language, conversion between
types requires the use of explicit conversion functions as
opposed to implicit type coercion.
Typing strength is a continuum;
ML is more strongly typed
than
Java, which is more strongly typed than
C.
Strong or weak typing is independent of the choice between
static typing and
dynamic typing. Among strongly typed
languages,
Ada,
Java,
Haskell and
ML are statically
typed, whereas
Python and
Ruby are dynamically typed.