California State University Stanislaus

CS 4300: Compiler Theory

Fall 2011

MWF (sections 1 and 2) 11:00 am - 11:50 pm, P 101,  Dr. Melanie Martin

[Basic Information]         [Announcements]         [Calendar/Assignments]         [Useful Links]

Welcome to CS 4300, Compiler Theory

Course Description

This course will introduce you to the principles of the design, evaluation, and implementation of compiler theory. This includes lexical, syntactic, and semantic analyses and syntax directed translation of programming languages, symbol table construction, error diagnostics, and code generation. In addition to learning the theory, students will construct a compiler for a subset of the C++ programming language.

Announcements and Upcoming Events


Welcome to CS 4300!

Tuesday office hours this week (9/20) cancelled and moved to Thursday (9/22) 2-4 pm in N374
Wrap-up Schedule:

    On Monday, December 12, 2011, 
       at 10:00 am in CS Lab
  • One person from each group transfers you compiler (source and executable) and test cases to the test account
       at 11:15 am, in P-101 (our classroom):
  • Turn in your final exam
  • Demo your compiler
  • Upload Final Group Report to submission system (Due Wednesday 12/14 at 11:59pm)
    • What does and doesn't work
    • Limitations
    • What needs to be done
  • Individual Reports (email to me, confidential). About one single spaced page each analyzing:
    • Your contribution
    • Other team members contribution
    • How group worked

Basic Information

Textbooks are Compilers: Principles, Techniques, and Tools, by Aho, Sethi, and Ullman ( known as the dragon book) Addison Wesley; 2 edition (August 31, 2006),    
                                    ISBN-10: 0321486811,  ISBN-13: 978-0321486813 
                        flex & bison, by Levine. O'Reilly Media, Inc. (August, 2009), ISBN-10: 0596155972, ISBN-13: 978-0596155971

Instructor: Dr. Melanie Martin                                  Office: Demergasso-Bava Hall 276

Email:                               Office Phone: (209) 667-3787

Web Page:

Office Hours: 
                           Monday 9:00 to 10:00 am  P-276
Monday 3:00 to 4:00 pm    P-276
                           Tuesday 1:00 to 3:00 pm   N-376
9:00 to 10:00 am  P-276
                           and by appointment.

Best way to contact Dr. Martin:  Email  Please put "CS4300" in the subject line of the email.

Prerequisite: CS 4100
Corequisite: CS 4300 section 2

Warning: I reserve the right to make changes to the syllabus at any time during the term by announcing them in class and on my web page.

Grading and Policies

Final grades will be based on a term project and an exam. A plus and minus grading scale will be used to assign final grades.

Term Project:  Seventy percent of your grade will be determined by the compiler project. The grade will be composed of a team grade (50%), which will be the same for all team members, and an individual grade (50%), which will be determined by your fellow team members and the instructor, based on your individual contribution to the overall team effort. Additional information about the project requirements in available in the project handout. Project materials were developed by Dr. Ray Zarling (used with permission).

Additional project materials:
Target Language Syntax

Sample flex/bison/make applications (tar-gnuzip archives: use 'tar xzf archive.tgz to unpack) Sample code:
Virtual Machine for Quadruples

Exams, Quizzes and Homework: There will be quizzes, homework and exams given to reinforce the theory component of the course. The scores from exams, quizzes and homework will be combined into a “theory” grade, which will account for 30% of your final grade.

Academic Honesty: The work you do for this course will be your own, unless otherwise specified. You are not to submit other people's work and represent it as your own. I consider academic honesty to be at the core of the University's activities in education and research. Academic honesty is expected at all times in this course.

Cell Phone Policy: During class time, your cell phone is to be turned off and out of sight. Any use of a cell phone during class will result in confiscation of the phone until that day's class has ended or your removal from the class for that day. If you attempt to use your cell phone or leave it on during an exam, you will be considered to have finished your test, and I will collect your exam at that time.  Exceptions may be made only if you discuss your situation with me prior to the start of that day's class, in this case, your cell phone must be set to vibrate/silence.

Important dates:

(See Schedule of Courses or Academic Calendar)

Last day to add/drop a class:

Sept 19;

Last day to change grade options (CR/NC): 
Sept 19;

No classes:

Sept 5, Oct 11, Nov 11, Nov 24, Nov 25, Dec 7.