CSC 411: Compiler Construction

Offered Under: B.Sc. in Computer Science (CSC)
Description

This course introduces the fundamental principles and practices for the design and implementation of compilers and interpreters. Core topics covered include: preprocessors, assemblers and linkers; scanning theory and practices; grammar and parsing; symbol tables; run-time environment and storage organization; lexical, syntax and semantic analysis; syntax directed translation and type checking; code generation and optimization; constructing prototype compiler modules for a hypothetical language.



Course Type Major
Credit Hour 3
Lecture Hour 45
Expected Outcome(s):
  • Identify the dataflow problem(s) required for a given dataflow optimization.
  • Construct and solve the dataflow equations for a given dataflow problem.
  • Identify the classical optimizations that could be applicable to a given piece of code to improve its performance.
  • Analyze the major control flow properties of a program, including control flow graphs, dominators, natural loops, and reducible vs. irreducible flow graphs.
  • Translate a source-level language into a low-level compiler internal representation.
  • Choose the appropriate compiler internal representation for different kinds of compiler tasks.
  • Implement the major phases of a simple compiler, including scanning, parsing, intermediate code generation, and a few program optimizations.


Grading Policy:

Letter Grade Marks Grade Point
A 90 - 100 4.00
A- 85 - 89 3.70
B+ 80 - 84 3.30
B 75 - 79 3.00
B- 70 - 74 2.70
C+ 65 - 69 2.30
C 60 - 64 2.00
C- 55 - 59 1.70
D+ 50 - 54 1.30
D 45 - 49 4.00
F 00 - 44 4.00