Prof. Yufei Ding
Office hours: Monday 3:00-4:30pm at HFH 1123
TA: Boyuan Feng (Office hours: Tuesday 10:00am-12:00pm at CSAIL)
TA: Yuke Wang (Office hours: Thursday 10:00am -12:00pm at CSAIL)
TA: Ursula Hebert-Johnson (Office hours: Friday 1:00pm - 3:00pm at CSAIL)
Times and Location
Lecture: TR 3:30pm-4:45pm in PHELP1260
Discussion sessions:  Tues 5:00-5:50pm in Girvetz 2129,  Tues 6:00-6:50pm NH 1109
Course web site: http://www.cs.ucsb.edu/~yufeiding/cs160
This course is intended to provide understanding of fundamental concepts in compiler design and implementation. Compilers are ubiquitous in the Computer Science field, especially in an era where programmers use many languages and a single language does not dominate.
Catalog Description: Study of the structure of compilers.
Topics include: lexical analysis; syntax analysis including LL and LR parsers; type checking; run-time environments; intermediate code generation; and compiler-construction tools.
By course: CMPSC 64 or EE 154, CMPSC 130A and CMPSC 138.
By Topic: Automata theory and formal languages; Programming in C++; Data structures, algorithms, and complexity, assembly language programming
Textbook and Other Information Sources
- (Recommended) Engineering a Compiler (2nd edition), by Keith D. Cooper and Linda Torczon.
- (optional) Compilers: Principles, Techniques, and Tools, by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman.
- (optional) Optimizing Compilers for Modern Architectures , by Randy Allen and Ken Kennedy.
The coursework will be reading assignments from the textbook, 6 projects, 1 midterm exam, and 1 final exam.
The grade breakdown will be 20% midterm, 20% final and 60% projects. For the projects, the grade breakdown is as follows: 5% Project 1, 15% Project 2, 15% Project 3, 20% Project 4, 22.5% Project 5, 22.5% Project 6.
Each student will have 4 "slip days" to use over the quarter. Using a slip day allows one project to be turned in up to 24 hours after the deadline. Slip days are automatically applied by the TAs upon late assignment submission. Slip days can only be used in 24 hour increments: turning in an assignment 30 minutes late uses a slip day. If all slip days are expended, a late assignment will not be accepted.
Class attendance is expected: you are responsible for everything that goes on in class. "I wasn't there" and "I didn't know" are not valid excuses for missing something important.
Please read this section carefully.
The university, the department, and this instructor all take the issue of academic integrity very seriously. A university requires an atmosphere of mutual trust and respect. While collaboration is an integral part of many scholarly activities, it is not always appropriate in a course, and it is never appropriate unless due credit is given to all participants in the collaboration. This goes for both ideas and programming or other work.
Here are some examples:
- Allowed: Discussion of lecture and textbook materials
- Allowed: Discussion of how to approach assignments, what techniques to consider, what textbook or lecture material is relevant
- Not allowed: Sharing ideas in the form of code, pseudocode, or solutions
- Not allowed: Turning in someone else's work as your own, even with that person's permission.
- Not allowed: Allowing someone else to turn in your work as his or her own.
- Not allowed: Turning in work without proper acknowledgment of the sources of the content (including ideas) contained within the work.
For some views on academic integrity at UCSB see the Academic Integrity page of the Office of Judicial Affairs.
Summary: Academic integrity is absolutely required - dishonesty (cheating, plagiarism, etc.) benefits no one and hurts everyone. If you are not sure whether or not something is appropriate, ask the instructor or the TA.
Course Materials and Copyright
All course materials (class lectures and discussions, handouts, examinations, web materials) and the intellectual content of the course itself are protected by United States Federal Copyright Law, the California Civil Code. The UC Policy 102.23 expressly prohibits students (and all other persons) from recording lectures or discussions and from distributing or selling lectures notes and all other course materials without the prior written permission of the instructor (See http://policy.ucop.edu/doc/2710530/PACAOS-100). Students are permitted to make notes solely for their own private educational use. Exceptions to accommodate students with disabilities may be granted with appropriate documentation.
To be clear, in this class students are forbidden from completing study guides and selling them to any person or organization.
Students with Disabilities
If you are a student with a (temporary or permanent) disability and would like to discuss special academic accommodations, please first contact the Disabled Students Program (DSP) at UCSB. DSP will arrange for special services when appropriate (e.g., facilitation of access, note takers, readers, sign language interpreters). Please note that it is the student's responsibility to communicate his or her special needs to the instructor, along with a letter of verification from DSP. The instructor will be happy to make the appropriate accommodations once you work out the details with DSP; also, feel free to communicate these needs to the instructor while waiting for DSP to finalize their response.
|Classroom computer use policy - Please come to class in order to focus on the subject at hand - not on email, texting, Facebook, web surfing, etc. This is distracting to your classmates and the instructor. If you truly need to use class time to devote to these activities, please do it elsewhere.|
|Cell phone policy - Please mute your cell phone. If it rings, I get to answer it. Really.|