ClassInfo

CSC 448 Compiler Design

James Riely

Office: CDM 845
Winter 2008-2009
Class number: 22564
Section number: 801
W 5:45PM - 9:00PM
LEWIS 01110 Loop Campus

Summary

(Ignore the published pre-reqs, the actual prerequesites are CSC373 and CSC374.)

Compilers, which translate between programming languages, are a central component of system software. Familiar examples of compilers include javac, which translates java source code into java byte code, and the java interpreter, which includes a "just-in-time" compiler that translates the byte code to native machine code. The study of compilers is valuable for several reasons:

  • Compilers are central to the practice of software development. Understanding compiler construction will help you understand programming languages. You will be a better programmer as a result, even if you never write a compiler again!
  • Understanding compilers are increasingly important to good software design. Modern runtime systems (such as Microsoft's dotNet and Sun's Java) perform compilation as part of the normal execution of code. Understanding the advantages and limitations that this imposes can help you write better code for these platforms.
  • Compilers are large and complex, yet very well understood. Thus compilers are an excellent case study for sharpening your software development and engineering skills.
  • Compilers are based on a lot of great theory, from automata and formal grammars to map coloring, fixed points and other exciting bits of mathematics. These bits of math are crucial to parsing, register allocation, optimization and other important problems.
The class offered this winter will give you the opportunity to complete two projects:
  • a C-to-x86 compiler built from a provided Java code-base
  • a student-chosen project built from scratch
These projects will give you a great answer when an job interviewer asks you: what significant projects did you complete while in school?



Texts



School policies:

Changes to Syllabus

This syllabus is subject to change as necessary during the quarter. If a change occurs, it will be thoroughly addressed during class, posted under Announcements in D2L and sent via email.

Online Course Evaluations

Evaluations are a way for students to provide valuable feedback regarding their instructor and the course. Detailed feedback will enable the instructor to continuously tailor teaching methods and course content to meet the learning goals of the course and the academic needs of the students. They are a requirement of the course and are key to continue to provide you with the highest quality of teaching. The evaluations are anonymous; the instructor and administration do not track who entered what responses. A program is used to check if the student completed the evaluations, but the evaluation is completely separate from the student’s identity. Since 100% participation is our goal, students are sent periodic reminders over three weeks. Students do not receive reminders once they complete the evaluation. Students complete the evaluation online in CampusConnect.

Academic Integrity and Plagiarism

This course will be subject to the university's academic integrity policy. More information can be found at http://academicintegrity.depaul.edu/ If you have any questions be sure to consult with your professor.

All students are expected to abide by the University's Academic Integrity Policy which prohibits cheating and other misconduct in student coursework. Publicly sharing or posting online any prior or current materials from this course (including exam questions or answers), is considered to be providing unauthorized assistance prohibited by the policy. Both students who share/post and students who access or use such materials are considered to be cheating under the Policy and will be subject to sanctions for violations of Academic Integrity.

Academic Policies

All students are required to manage their class schedules each term in accordance with the deadlines for enrolling and withdrawing as indicated in the University Academic Calendar. Information on enrollment, withdrawal, grading and incompletes can be found at http://www.cdm.depaul.edu/Current%20Students/Pages/PoliciesandProcedures.aspx.

Students with Disabilities

Students who feel they may need an accommodation based on the impact of a disability should contact the instructor privately to discuss their specific needs. All discussions will remain confidential.
To ensure that you receive the most appropriate accommodation based on your needs, contact the instructor as early as possible in the quarter (preferably within the first week of class), and make sure that you have contacted the Center for Students with Disabilities (CSD) at:
Lewis Center 1420, 25 East Jackson Blvd.
Phone number: (312)362-8002
Fax: (312)362-6544
TTY: (773)325.7296