Teaching › CD
Compiler Design
How source code becomes machine code: lexical analysis, parsing, syntax-directed translation, intermediate code, optimisation and code generation.
Week 01Introduction: phases of a compiler, bootstrappingSlides soonPractice soon
Week 02Lexical analysis: tokens, regular expressionsSlides soonPractice soon
Week 03Finite automata: RE to NFA to DFA; LexSlides soonPractice soon
Week 04Syntax analysis: context-free grammars, derivations, ambiguitySlides soonPractice soon
Week 05Top-down parsing: recursive descent, left recursion, left factoringSlides soonPractice soon
Week 06FIRST, FOLLOW and LL(1) parsingSlides soonPractice soon
Week 07Bottom-up parsing: shift-reduce, handles, operator precedenceSlides soonPractice soon
Week 08LR(0) and SLR(1) parsingSlides soonPractice soon
Week 09CLR(1) and LALR(1) parsing; YACCSlides soonPractice soon
Week 10Syntax-directed translation: S- and L-attributed definitionsSlides soonPractice soon
Week 11Intermediate code: three-address code, quadruples, triplesSlides soonPractice soon
Week 12Type checking, symbol tables, run-time environmentsSlides soonPractice soon
Week 13Code optimisation: basic blocks, flow graphs, DAGsSlides soonPractice soon
Week 14Local and global optimisation; data-flow analysisSlides soonPractice soon
Week 15Code generation; revisionSlides soonPractice soon