198:415 - Compilers

Announcements

Description

Introduction to compiler construction. Course contents include the following: Formal translation of programming languages, program syntax and semantics. Finite state recognizers and regular grammars. Context-free parsing techniques such as LL(k) and LR(k). Attribute grammars, syntax-directed translation schema, type checking, register allocation, instruction selection, code generation, data flow analysis and code improvement transformations (code optimizations). There will be at least two programming projects, most likely three projects.

Staff

Prerequisites, Lectures and Recitations

211 and 314
lectures : Monday/Wednesday 3:20pm - 4:40pm, Hill 009 (basement)
recitation : Wednesday 5:15pm - 6:10pm, SEC 206

Textbooks

Academic Integrity

Please read carefully.

Read/Post questions

Please post questions regarding homeworks and projects using Rutgers's Sakai system . Select Discussion and Private Messages in our course group (198:415:01 Sp10). DO NOT send homework or project questions directly to John or me. THANKS!
You should read the news group at least every other day!

MIDTERM

There will be one midterm exam.

FINAL EXAM

There will be a final exam.

Lecture Notes

Homeworks

Homeworks must be handed in at the beginning of your recitation. Here is the source code of a (partial) ILOC simulator (tar.gz format). The same simulator is available on the ilab cluster.

Projects

For the projects, we use the machines in the ilab cluster. The ilab cluster page contains the listing of valid hostnames available for projects. Be aware that ilab.rutgers.edu, cereal.rutgers.edu, pasta.rutgers.edu and soup.rutgers.edu are NOT to be used . Remember to use a type of cereal (trix.rutgers.edu), a type of pasta (macaroni.rutgers.edu), etc. You have the same home directory across all machines of the ilab cluster .

Acknowledgement

This course has been based on courses taught by Keith Cooper at Rice University and Chau-Wen Tseng at the University of Maryland.