Understand the general goals and principle of a compiler, including
the lexer and the parser.
Understand the principles of regular languages (as described
by finite automata and regular expressions) and
of context-free languages (as described by context-gree grammars).
Gain some basic experience developing a compiler with ANTLR.
Understand the basics of code optimization done by compilers.
Assembly and High-level Languages
Understand some of the relations between high-level programming languages and assembly language