CPSC 388 Compiler Design Fall 2001

CPSC 388: Compiler Design

TR 1:30 - 3:30, Colton 106

Fall 2001

Professor: Dr. Ellen Walker

Office: / Colton 112, x5250
E-mail: /

Course Textbook:

Compiler Construction: Principles and Practice, by Kenneth C. Louden, PWS Publishing Co., 1997

Programming:

Programming examples in the textbook use the C programming language, which should be sufficiently similar to C++ that you will have no trouble with them. The programming environment that we will use in class is the GNU environment under Linux. We will be using gcc or g++, flex and bison (GNU versions of LEX and YACC). If you do not already have an account on the lions, please let me know ASAP so that we can remedy that!

Grading:

Class Participation10%

Homework Assignments45%

Tests (3 in-class)30%

Final Exam15%

Online Sources of Information

A course home page will be set up at Initially, this page will consist of this syllabus and pointers to useful pages for general compiler references. Eventually, copies of assignments, test solutions, and notes will be made available.

Also on the home page will be a link to the course mailing list. All students are responsible for adding themselves to the list and checking email regularly. Archives of the class email will be available at the mailing list site.

Academic Integrity:

Exams will be closed book, but you will be allowed one page of notes. All exams are to be individual work, and materials brought into the exam may not be shared.

Unless otherwise specified, homework assignments are to be done individually. Proper credit must be given for any work that is not your own, including code. Violation of this academic integrity policy is grounds for failure of the course.

Late Assignment / Makeup Policy:

Unless you make prior arrangements with the instructor or have a medical excuse,

a)Written homework is due no later than the beginning of class on the assigned due date, with a penalty of 5% per day thereafter. I will go over these assignments in class. Please bring a hard copy to class for in-class discussion purposes.

b)Programming homework is due no later than midnight on the assigned due date.

c) If you miss an exam, you will receive an F for that exam.

Topic Schedule (Subject to change!!)

TUES / THURS
0 / 8/23 / Introduction (1)
1 / 8/28, 8/30 / Scanning (2) / Reg Exp (2)
2 / 9/4 , 9/6 / Finite Automata (2) / LEX (2)
3 / 9/11, 9/13 / Parsing (3) / Parsing (3)
4 / 9/20 / No Class / TEST 1
4 / 9/25 / CFG, Trees, Ambig. (3) / No Class
5 / 10/2, 10/4 / EBNF, syntax (3) / TD Parsing (4)
7 / 10/9, 10/11 / TD Parsing (4) / BU Parsing (5)
8 / 10/18 / No Class / BU Parsing (5)
9 / 10/23 / TEST 2 / No Class
10 / 10/30, 11/1 / Semantic Anal. (6) / Sem. Analysis (6)
11 / 11/6, 11/8 / Runtime Env. (7) / Code Gen (8)
12 / 11/13, 11/15 / TEST 3 / Code Gen (8)
F / Mon, 11/19 / Final Exam 9:00am

1