CO521: Compilers

Course Number : CO521
Course Title :Compilers
Credits : 3
Prerequisites : CO214 Data Structures & Algorithms
No Course Content Time Allocated (hours)
      L&T P&A
01

Introduction
Programming language design & implementation, Program and machine architectures, Linkers and loaders, Names and references, Types, Object-oriented programming

4

 

02

Programming Tools
Recompilation tools such as make, Source code control tools such as res, Source-level debuggers and editors

3

3

03

Lexical Analysis
Role of the lexical analyzer, Input buffering, Specification of tokens, Recognition of tokens, a language for specifying lexical analyzers, Finite Automata, Regular expressions and NFA, Design of lexical analyzer generator, Optimization of DFA-based pattern matchers.

5 6
04

Syntax Analysis
Context-free Grammars, Top-down and Bottom-up parsing, Recursive descent parsing, Shift-reduce parsing, Semantic attachments, LR parsers, Ambiguous grammars, Parser Generators.

7 6
05

Semantics Analysis - Static Semantics
Intermediate forms, Symbol table design and implementation, Type checking, Equivalence of type expressions, Type conversions, Other semantic checks such as Boolean in conditional statements, Type systems

4 6
06

Code Generation
Run-time storage model, Storage allocation and register counting, Simple code generation, Symbol tables, Declarations, Assignment statements, Boolean expressions, Case statements, Procedure calls, Object-oriented construct code generation

3 6
07

Miscellaneous Topics
Procedure parameters and return values, Introduction to code optimization, Compiler pragmatics

4

3

Total

30 30
Assessment Percentage Marks
Continuous Assessment 40  
         Tutorials   10
         Assignments   30
Written Examinations 60  
         Mid-Semester   20
         End of Semester   40
[an error occurred while processing the directive]