https://class.stanford.edu/courses/Engineering/Compilers