In this course, students learn about formal language and automata, overview of compiler phases, context-free grammars, syntax, directed translations, techniques used in lexical scanning, parsing and symbol table implementation, error diagnosis and recovery.