16.01.2015 Views

CS2013-final-report

CS2013-final-report

CS2013-final-report

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

COMP 412: Topics in Compiler Construction, Rice University<br />

Houston, TX<br />

Keith Cooper<br />

keith@rice.edu<br />

http://www.clear.rice.edu/comp412<br />

Knowledge Areas that contain topics and learning outcomes covered in the course<br />

Knowledge Area<br />

Programming Languages (PL) 21<br />

Algorithms and Complexity (AL) 5<br />

Total Hours of Coverage<br />

Where does the course fit in your curriculum<br />

COMP 412 is an optional course. It is typically taken by fourth-year undergraduate students and first-year graduate<br />

students in either the Professional Masters’ degree program or the PhD program. Some advanced third year<br />

students also take the course.<br />

Enrollment ranges from 40 to 70 students.<br />

What is covered in the course<br />

Scanning, parsing, semantic elaboration, intermediate representation, implementation of the procedure as an<br />

abstraction, implementation of expressions, assignments, and control-flow constructs, brief overview of<br />

optimization, instruction selection, instruction scheduling, register allocation. (Full syllabus is posted on the<br />

website, listed above.)<br />

What is the format of the course<br />

The course operates as a face-to-face lecture course, with three contact hours per week. The course includes three<br />

significant programming assignments (a local register allocator, an LL(1) parser generator, and a local instruction<br />

scheduler). The course relies on an online discussion forum (Piazza) to provide assistance on the programming<br />

assignments.<br />

How are students assessed<br />

Students are assessed on their performance on three exams, spaced roughly five weeks apart, and on the code that<br />

they submit for the programming assignments. Exams count for 50% of the grade, with the other 50% derived<br />

from the programming assignments.<br />

The programming assignments take students two to three weeks to complete.<br />

Course textbooks and materials<br />

The course uses the textbook Engineering a Compiler by Cooper and Torczon. (The textbook was written from<br />

the course.) Full lecture notes are available online (see course web site).<br />

Students may use any programming language, except Perl, in their programming assignments. Assignments are<br />

evaluated based on a combination of the written <strong>report</strong> and examination of the code.<br />

Why do you teach the course this way<br />

This course has evolved, in its topics, coverage, and programming exercises, over the last twenty years. Students<br />

generally consider the course to be challenging—both in terms of the number and breadth of the concepts<br />

presented and in terms of the issues raised in the programming assignments. We ask students to approximate the<br />

- 361 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!