Strong vs. weak typing
Strong typing (type safe)
- Never apply an operation to an inappropriate data value without signaling an error
- Never misuse a bit pattern in memory
- Array bounds checking? Divide-by-zero checking?
- Ex: Scheme, ML, Haskell, Smalltalk, Java, Prolog, safe subset of Modula-3
Weak typing: not strong
- C/C++, Pascal, Fortran, assembly languages