A compiler for the Tiger language in Andrew Appel's books