CSC 311 Compiler Design (2 Units; L = 15; P = 45)
Course Outline
Introduction to compilers and their role in software development. Overview of the compilation process and its various stages. Lexical analysis and the construction of a lexer. Syntax analysis and the construction of a parser. Abstract syntax trees and semantic analysis. Intermediate code generation and optimization techniques. Code generation and target machine architecture. Error handling and recovery in compilers. Compiler front-ends and back-ends. Implementation of regular expressions and context-free grammars. Scanning and parsing algorithms. Data structures for symbol tables, parse trees, and code generation. Introduction to programming language paradigms and their integration into compilers. Object-oriented programming concepts in compilers. Functional programming concepts in compilers. Latest advancements and current research in compiler construction. Applications of compilers in software development and beyond.