About Us academics students faculty & staff alumni & friends resources NMU
 

CS424 COMPILERS: THEORY AND PRACTICE (4 Cr.)

COURSE DESCRIPTION

Prerequisite:  CS222 and either CS322 or CS330, and junior standing, or permission of instructor.

Description

A compiler is a program that translates one computer language to another.  In this course, students will learn how compilers work, what makes some languages easier to compile than others, and different approaches to compiler design.  Over the course of the semester, the students will build their own compilers.

Course Outline

Week 1:  Introduction
Week 2:  Compiling a very simple language; Program 1 due
Week 3:  Lexical Analysis:  what is it, why we need it; Assignment 1 due
Week 4:  Context-free grammars and how they relate to compilers; Program 2 due
Week 5:  LR parsers, the most common form of compiler today; Assignment 2 due
Week 6:  Syntax-directed translation in designing a compiler; Program 3 due
Week 7:  Type checking and why it was adopted in modern programming languages; Assignment 3 due
Week 8:  Run-time environments, and the handling of scope rules, loops, and conditionals; Prog. 4 due
Week 9:  Symbol tables and their uses in both lexer and parser; Assignment 4 due
Week 10:  Intermediate code generation and multi-pass compilers; Program 5 due
Week 11:  Backpatching and its use in optimization; Assignment 5 due
Week 12:  Basic blocks and flow graphs for developing optimization strategies; Program 6 due
Week 13:  Peephole optimization
Week 14:  Code generators and the usual languages generated; Program 7 due

Home
CS Courses
MA Courses
MA Ed Courses
MA Graduate Courses
MAED Graduate Courses

CS101 CS120 CS120A CS122 CS201 CS222 CS228 CS295 CS297 CS298 CS302 CS322 CS326 CS330 CS370 CS422 CS424 CS426 CS442 CS444 CS446 CS460 CS470 CS480 CS490 CS491 CS495 CS496 CS497 CS498