Massachusetts Institute of Technology: S. Amarasinghe and M. Rinard's "Semantic Analysis"

Study the slides on type systems and what to check for when building intermediate representations for various language constructs.