itcsbanner.jpg

Theory of Computation and Compiler Design

Course Aim:
The course aims to establish solid theoretical groundwork for understanding computational models and compiler design. It encompasses the fundamental principles of formal languages and automata theory, essential for constructing compilers. The course covers three fundamental areas of computation theory: automata theory, theory of computability, and complexity theory. Additionally, it introduces students to the analysis and synthesis of various stages involved in the compilation process.
Course contents:
Introduction to Automata, Regular Languages, Regular Expressions, Deterministic Finite Automata, Nondeterministic Finite Automata, Context-Free Languages, Pushdown, Turing Machines, Decidability, Computability, and Halting Problem, Church-Turing Thesis, Complexity, Introduction to Compilers, Structure of Compiler Modules, Lexical Analysis, Syntax Analysis, Parsing Techniques, Semantic Analysis, Source Program Checking for Semantic Consistency and Type Checking, and Intermediate Code Generation.

Course ID
CSC471
Level
Undergraduate
Credit Hours
CH:3