Lecture slides
- Introduction, X86 hardware
- X86 assembly, C scoping rule, local variables
- Calling convention, IR
- IR, CFG, Local optimizations, Data flow analysis
- Constant propagation, Live variable analysis
- Reaching definitions, Dominator analysis, SSA
- Assignment-2, LLVM IR
- LLVM CFG, SSA
- SSA, Manual memory management
- Automatic memory management, Mark and sweep, Mark and compact, Copying collector, Concurrent Mark
- Concurrent GC, Reference counting, Leak detector
- Unique pointers, Natural loop, Register Allocation
- Lexical analysis, Finite automaton, Regular expression (RE)
- Regular expressions, Lex tool, RE to transition diagram
- Assignment-3, Midsem
- RE, NFA, NFA to DFA, RE to NFA
- Assignment-4, RE to NFA, Lex program to DFA
- Implementation of DFA, Minimal DFA, Context free grammar, Parse tree, Derivation, Ambiguity
- Top-down parsing, Recursive descent parsing, Predictive parsing, First and follow set
- First and follow set, Left recursive, Left factoring, Error recovery, Yacc tool
- Abstract syntax tree, Type system, statically and dynamically typed language, Inheritance, Dynamic dispatch
- Dynamic dispatch, Static and dynamic scope, Symbol table, Type inference rules for a subset of C grammar
- Type inference rules, Logical rules of type inference, Subtype relationship
- Code generation rules for a subset of C grammar
- Code generation rules for a subset of C grammar
- Code generation example, Operational semantics rules
Assignments
Homeworks
Feedback
Feedback