Degree Level Course
Compiler Design
This course introduces the fundamental principles, structures, and techniques used in the design and implementation of language translators, particularly compilers. It provides a comprehensive understanding of the complete compilation process – from lexical and syntax analysis to intermediate representation, code optimization, and target code generation. Through theoretical foundations and hands-on implementation, students will learn to build a working compiler for a subset of the C programming language (nanoC) using tools like Flex and Bison, and will gain exposure to key compiler data structures such as symbol tables, abstract syntax trees, and control flow graphs. The course emphasizes both the theoretical underpinnings and practical aspects of compiler construction. • This course provides a comprehensive introduction to the fundamental concepts and techniques used in language translation. • It balances theoretical foundations in formal languages with practical implementation using the Flex-Bison tool-chain. • It uses a nanoC, designed as a subset of C, as a programming language for illustrating and providing a sample implementation of various concepts and practices of language translation
Course ID: BSCS4032
Course Credits: 4
Course Type: Elective
Pre-requisites: BSCS3005 - Programming in C