The course covers principles of compiler design including introduction to compiler technology, overview of compiler followed by in depth study of various phases and component of compilers including lexical analysis, syntax analysis, semantic analysis, intermediate code generation, run time environment as well as machine code generation and optimization. The student will learn writing a complete working compiler in a modular fashion through intensive lab assignments and will be exposed to some advanced topics in compilers.
1. Students are able to learn the applications and impoirtance of compiler technology as well as various phases of compilers.
2. Students are able to learn the algorithms and tools for lexical analysis phase of compiler and will gain hands on experience building lexical analyzer for complete object oriented language .
3. Students are able to learn the algorithms and tools for syntax analysis phase of compiler including different kind of parsing and will gain hands on experience building parser for an object oriented language.
4. Students are able to learn the algorithms and techniques for semantic analysis and type checking phase of compiler including data structure and techniques for run time support and will gain hands on experience building type checker for a strongly typed object oriented language.
5. Students are able to learn the issues and algorithms involved in code generation and important optimization and build a code generator for an object oriented language.