Course Information
Prerequisites
- Theory of Computation
- Computer Architecture
- Data Structures and Programming Concepts
Course Description
Compiler Design introduces the principles and techniques involved in designing translators that convert high-level programming languages into machine-level code. The course covers lexical analysis, syntax analysis, parsing methods, semantic processing, intermediate code generation and optimization techniques.
Course Outcomes
- Understand different phases of compiler design.
- Design lexical analyzers and recognize tokens.
- Analyze grammars and implement parsing techniques.
- Understand syntax-directed translation and semantic analysis.
- Generate intermediate code and perform optimization.
- Understand compiler construction tools such as YACC.
Course Modules
Module 1: Lexical Analysis
Topics Covered
- Introduction to compilers and compiler phases
- Tokens, patterns and lexical errors
- Lexical analyzer design
- Lexical analyzer generators
Learning Resources
Module 2: Syntax Analysis and Parsing
Topics Covered
- Context-free grammars and parsing
- Parse trees and syntax errors
- Top-down parsing techniques
- Bottom-up and LR parsing
- Parser generators
Learning Resources
Module 3: Syntax Directed Translation and Code Optimization
Topics Covered
- Syntax-directed translation
- Attributed grammars
- Type checking
- Intermediate code generation
- Memory allocation and optimization