CS 291 Programming Languages Notes