Compilers principles, techniques, & tools
Introduction to automata theory, languages, and computation
Elements of ML Programming