CS31003: Compilers
CS31003 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Course name | Compilers | ||||||||||||||||||||||||||||
Offered by | Computer Science & Engineering | ||||||||||||||||||||||||||||
Credits | 3 | ||||||||||||||||||||||||||||
L-T-P | 3-0-0 | ||||||||||||||||||||||||||||
Previous Year Grade Distribution | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
Semester | Autumn |
Syllabus
Syllabus mentioned in ERP
The aim is to learn how to design and implement a compiler and also to study the underlying theories. The main emphasis is for the imperative language.Introduction: Phases of compilation and overview.Lexical Analysis (scanner): Regular languages, finite automata, regular expressions, from regular expressions to finite automata, scanner generator (lex, flex).Syntax Analysis (Parser): Context-free languages and grammars, push-down automata, LL(1) gram-mars and top-down parsing, operator grammars, LR(O), SLR(1), LR(1), LALR(1) grammars and bottom-up parsing, ambiguity and LR parsing, LALR(1) parser generator (yacc, bison)Semantic Analysis: Attribute grammars, syntax directed definition, evaluation and flow of attribute in a syntax tree.Symbol Table: Its structure, symbol attributes and management.Run-time environment: Procedure activation, parameter passing, value return, memory allocation, and scope.Intermediate Code Generation: Translation of different language features, different types of intermediate forms.Code Improvement (optimization): Analysis: control-flow, data-flow dependence etc.; Code improvement local optimization, global optimization, loop optimization, peep-hole optimization etc. Architecture dependent code improvement: instruction scheduling (for pipeline), loop optimization (for cache memory) etc.Register allocation and target code generationAdvanced topics: Type systems, data abstraction, compilation of Object Oriented features and non-imperative programming languages.
Concepts taught in class
Student Opinion
How to Crack the Paper
Classroom resources
Additional Resources
Time Table
Day | 8:00-8:55 am | 9:00-9:55 am | 10:00-10:55 am | 11:00-11:55 am | 12:00-12:55 pm | 2:00-2:55 pm | 3:00-3:55 pm | 4:00-4:55 pm | 5:00-5:55 pm | |
---|---|---|---|---|---|---|---|---|---|---|
Monday | NR223 | |||||||||
Tuesday | NR223 | NR223 | ||||||||
Wednesday | ||||||||||
Thursday | ||||||||||
Friday |