Strong vs Weak Typing
Every variable must be declared with a type.
A variable may receive only values of its type.
Type-related bugs can be reduced.
Type identification tags are not needed a run time.
Variables need not be declared with particular types.
The type of value held by a variable can change dynamically.
Values must be tagged during execution with their types.