CS362 2011F Compilers

Front Door

Welcome to the Fall 2011 session of Grinnell College's CSC 362, Compilers. In this course, we will consider both theoretical and practical issues in the implementation of compilers for programming languages (translators from high-level languages like Pascal to low-level languages, like assembler or machine code).

I consider compilers one of the most fun courses to teach (and take) because it provides an excellent opportunity to consider the relationship between theory (in particular, theory you'll learn or have learned in 341) and practice.

In an attempt to provide up-to-date information, and to spare a few trees, I am making this as much of a paperless course as I can.

Meets: MWF 1:15-2:05 in Science 2435.

Instructor: Samuel A. Rebelsky (rebelsky@grinnell.edu), Science 3821. Office hours: MWF 2:15-3:05; TuTh 10:00-11:00. I tend to follow an open door policy: Feel free to stop by when my door is open or to make an appointment for another time. Check my schedule for more details.

Grading (tentative):

Late Assignments: My experience shows that students who turn in work late learn significantly less than students who turn material in on time. (I'm not sure about cause and effect.) Hence, I strongly discourage late assignments. Unless prior arrangements have been made, assignments are due when specified on the assignment. After that they are considered late. Late assignments are penalized one letter grade (or equivalent) per day late, rounded up.

Attendance Policy: Because this class emphasizes hands-on exercises, discussion,and group recitation because I know students benefit from the presence of their colleagues, I expect you to attend every class period. In my experience, students who do not regularly attend class cause significant difficulties not only for themselves, but also for their classmates and for me. Hence, I have a strict attendance policy: Students with more than two unexecused absences will receive at least a one-letter penalty on their final grade. I reserve the right to ask the Registrar to drop from my class students with a significant number of absences.

Of course, I realize that there a variety of legitimate reasons that you will be unable to attend class, including, but not limited to, academic events, athletic events, illness, and family emergencies. Whenever possible, you should contact me in advance if you will be unable to attend class. Otherwise, you should notify me as soon as possible after class. If you must miss a class because of illness, I want you, rather than Health Services, to notify me.

In rare instances, I may allow a student to do a significant service to the class (e.g., acting as TA, providing instructions for a difficult task, grading an assignment) to make up a missed day.

Textbook: Aho, Alfred; Lam, Monica; Sethi, Ravi; and Ullman, Jeffrey (2006). Compilers: Principles, Techniques, Tools, 2nd Edition. Reading, MA: Addison-Wesley.

The latest version of the classic text on compilers, typically referred to as The Dragon Book. (The first edition was the Green Dragon Book. The second edition was the Red Dragon Book. For some reason, someone decided that this edition is also the second edition, although you'll see it referred to as the 3rd edition in the text. People seem to have started calling it the Purple Dragon Book.) Somewhat dense, and doesn't cover some newer topics but you'll be glad to have it as a reference when the semester is done.

Web Site: Rebelsky, Samuel (2011). CSC362: Compilers. Grinnell, IA: Grinnell College.

The thing you're looking at right now. Available online at http://www.cs.grinnell.edu/~rebelsky/Courses/CS362/2011F/. Where to go to find assignments, readings, examples, and all sorts of helpful information.



Sunday, 7 August 2011 [Samuel A. Rebelsky]

Sunday, 28 August 2011 [Samuel A. Rebelsky]


Disclaimer: I usually create these pages on the fly, which means that I rarely proofread them and they may contain bad grammar and incorrect details. It also means that I tend to update them regularly (see the history for more details). Feel free to contact me with any suggestions for changes.

This document was generated by Siteweaver on Wed Dec 7 13:16:46 2011.
The source to the document was last modified on Sun Oct 30 17:17:59 2011.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CS362/2011F/index.html.

Samuel A. Rebelsky, rebelsky@grinnell.edu