CS152: Compiler Design
Instructor: Betul Buyukkurt,
abuyukku@cs.ucr.edu, (951) 827-2373
Lecture: Monday, Tuesday, Wednesday, Thursday 3:30-5:00 PM EBU-II 141
Office hours: Monday, Wednesday, Thursday 11:30-12:30 PM EBU II 407 or by
appointment.
TA: An Nguyen,
nguyena@cs.ucr.edu
Lab: Monday, Wednesday 6:00 PM-9:00 PM, EBU II 135
Consultations: Monday, Wednesday 4:30PM-6:00PM, (room TBA)
Required Textbook
Andrew W. Appel, Modern Compiler Implementation in Java, Cambridge University Press.
Expected coverage
Selected topics from the first eight chapters.
Important Note:
Attendance is required for both labs and lectures. Students are required to read the sections pertaining to the material covered in the class from
the textbook preferably prior to class meetings.
Additional Resources
Programming assignments as well as any other required files and resources
will be made available through this web page.
Textbook's home page: http://www.cambridge.org/us/catalogue/catalogue.asp?isbn=052182060x
A class mailing list cs152@lists.cs.ucr.edu is established to
disseminate information pertaining to this class. Students should sign up
for it at
https://www.cs.ucr.edu/mailman/listinfo/cs152
Essential software includes:
The /bin directory for JDK needs to be added to the PATH, and the share needs to be added to the CLASSPATH. Since the systems people intend on moving to mandatory profiles, this will be included in the profile for all CS majors.
The tools are used with the command line. The commands:
java java_cup/Main < [input]
java JLex/Main [input]
are used to access the corresponding tools.
Grading Policy
Grading will be based primarily on the programming assignments. Yet,there will be a midterm and a comprehensive final exam. Approximate weights
assigned to them will be as follows:
Quizzes, homework and lab assignments 10%
5 programming assignments 60%
One midterm 15%
One comprehensive final 15%
Quizzes, homework and lab assignments: Attendance is required for both lectures and
labs. Pop-up quizzes may be given during lectures with no make-ups. Each lab meeting
will have a lab exercise that is to be completed during the lab. Make sure you get your work
checked off with the TA at the end of each lab meeting.
Programming assignments: Five relatively complex programming
assignments will be given in Java. The assignments will be progressively
more complex with the final project resulting in an implementation
of an interpreter for MiniJava. They have to run under Sun Microsystems Java 1.5.
Students should gather and study in advance manuals and any other
materials needed to run simple programs in Java, and, if possible, should
practice using the language. Programming assignments are due by the
midnight of the date specified and are to be submitted electronically by
means of the turnin WWW program available at
https://fish.cs.ucr.edu/radmin.
The turnin program always keeps the most recent version of
the program submitted.
There will be a 20% penalty for assignments that are late by one day,
50% penalty for a two-day delay and no credit will be given for homework
that is more than two days late.
Midterm: Midterm is on Wednesday, July 12. Topics included in the midterm are chapters
1-3 from the textbook as well as all material discussed and covered in class. As a study guide
here is quiz 1.
Comprehensive Final: is on Friday, July 28. Topics include all material discussed and covered
during lectures and labs. As a study guide here is the midterm and quiz 2.
Policy on Cheating and Student Collaboration
Submitted programs or projects must be developed completely independently
by each one of the students. NO COOPERATIION on assigned projects,
SHARING OR DISCUSSION of project code is allowed!!! Students
violating this policy on cheating will be given a failing grade for the
course and their case will be referred to the office of Vice-Chancellor
for Student Affairs.
Welcome to the Class!
Labs
Assignments