Static Semantics (typing): detect (before execution) that programs that are syntactically correct but will give errors during execution