Last Week: Type System  A type system of a programming language is a way to define how good program behave  Good programs = well-typed programs  Bad programs = not well typed  Type checking  Static typing – most checking at compile time  Dynamic typing – most checking at runtime  Type inference  Automatically infer types for a program (or show that there is no valid typing) 4
{}