Fall 2011 Syllabus

**Instructor:** Prof. J Genetti

**Office Hours:** 208B Chapman MWF 11:30-12:30, TR 2-3 or by appointment

**Phone/Email:** 474-5737 / `jdgenetti @ alaska . edu`

**Class Time/Location:** TR 11:30-1:00 Chapman 104

**Class web page:**
`http://www.cs.uaf.edu/2011/fall/cs631`

**Prerequisites:** CS 331

**Department policies:**
`http://www.cs.uaf.edu/cs/Policies.html`

**Required Textbook:**
*Compilers: Principles, Techniques, and Tools (2nd ed)*
by Aho et al (Addison Wesley)

**Recommended Textbook:**
*lex & yacc (2nd edition)* by Levine, Mason and Brown (O'Reilly)

**Expected Outcomes**

- Understand the compilation process, which includes lexical analysis, syntax-directed translation, syntax analysis, and code generation
- Be able to read and create specifications for programming languages
- Be able to use common compiler generation tools such as lex and yacc
- Understand how and when to apply optimizations such as machine-independent optimizations, instruction-level parallelism and multi-core parallelism
- Be able to create a working compiler

**Exams:**

There will be a take-home exam in lieu of class on **Thursday October 20**
that is due by the start of class on **Tuesday October 25**.
There will be an open-book in-class final exam on **Thursday Dec 15 from
10:15a-12:15p**.
The mid-term is worth **25%** and the final exam is worth **30%** of
your final grade.

**Homework:**

There will be 3-4 homework assignments (early in the semester) that make up
**15%** of your final grade.
Homework is due by 5pm on the due date and no late homework is accepted.

**Project:**

Each student will be required to complete a project that implements a compiler
or translator.
Project selection will occur in the middle of October.
15-20 minute presentations will take place on **Tuesday Dec 6 or Thursday
Dec 8** and a written final report is due on **Monday Dec 12**.
The project is worth **30%** of your final grade.

**Grading Policy:**

Final grades will be assigned based on the following percentage intervals:
A+ [95%,100%], A [90%,95%), A- [85%,90%),
B+ [80%,85%), B [75%,80%), B- [70%,75%),
C+ [65%,70%), C [60%,65%), C- [55%,60%),
D+ [50%,55%), D [45%,50%), D- [40%,45%), F [0%,40%).