An introduction to the basic techniques used in compiler design. Topics include compiler structure, symbol tables, regular expressions and languages, finite automata, lexical analysis, context-free languages, LL(1), recursive descent, LALR(1), and LR(1) parsing; and attribute grammars as a model of syntax-directed translation. Students use compiler building tools to construct a working compiler. (Formerly Computer Science 104A.)
Prerequisites:
Quality:
Difficulty:
Remarks:
- Language(s) used: Python, C++
- Leave class knowing how code is translated from text to machine code with no magic in between
- Expect take-home exams that are hard (YOU NEED TO STUDY)
- Professor Sorensen is very nice!
- Consider taking CSE211 as a continuation to this course