Principle of Compilers Notes