CS31003: Compilers

From Metakgp Wiki
Jump to navigation Jump to search
CS31003
Course name Compilers
Offered by Computer Science & Engineering
Credits 3
L-T-P 3-0-0
Previous Year Grade Distribution
12
15
13
23
20
24
3
EX A B C D P F
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

Class Test-1

Mid Sem

Class Test-2

End Sem

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