Principles that govern the design and implementation of programming languages. Topics include formal languages, programming language syntax and semantics, parsing, interpretation, and code generation. Emphasis on design issues. (Prerequesites: CSC 320 and CSC/PHI 385 or concurrent registration.)
|   |   Instructor:   |   James Moen   |
|   |   Email:   |   moen@augsburg.edu   |
|   |   Phone:   |   612 330-1142   |
|   |   Office:   |   Sverdrup 203F   |
|   |   Office Hours:   |   To be announced   |
|   |   Classroom:   |   Sverdrup 202   |
|   |   Classroom Hours:   |   11:50-1:20 Tuesday, Thursday   |
I'm often in my office at other times during the day, not just during my regular office hours. You may visit my office (almost) any time I am there. You may also telephone or send email at any time.
Kenneth C. Louden. Compiler Construction: Principles and Practice. PWS Publishing Company. Boston, Massachusetts. 1997. (ISBN 0-534-93972-4)
I'll assign homework every week or every two weeks, depending on its complexity. I'll accept homework up to one calendar day late, but with a 20% penalty. All submissions are final.
Most homework assignments will involve writing programs in the programming language Java. You must submit a listing of your program, and a copy of its actual output. Your programs will be graded both on correctness (are they free of errors?) and on style (are they easy to understand?).
If you turn in homework by email, you must attach it as an ASCII text file. Please don't use proprietary file formats (like Microsoft Word). My computer can't read them.
There will be two examinations in this course: a one-hour midterm and a two-hour final. Both examinations will be ``open book.'' To help you answer questions, you will be able to use your textbook, your class notes, and anything else handed out in class. See the schedule for (approximate) dates.
I'll assign points for each homework assignment and examination. Your final grade will be based on the number of points you get during the term. About 60% of your grade will be determined by homework, and about 40% will be determined by examinations.
Students are expected to be familiar with Augsburg College's policies on academic honesty. You will be required to sign a statement indicating that you understand these policies. Although you may exchange ideas with other students, everything you turn in must be your own work. Copying assignments, or parts of assignments, is not permitted!
This schedule is approximate. I may change it during the term. Chapter numbers refer to the Louden text. I won't always follow the textbook exactly. Instead, I'll use it as outside reading to supplement the lectures.
|   |   Sep 7   |   Chapter 1   |   Introduction. History.   |
|   |   Sep 12   |   Chapter 1   |   History. Course project. The language Snarl.   |
|   |   Sep 14   |   Chapter 2   |   Scanning.   |
|   |   Sep 19, Sep 21   |   Chapter 2   |   Scanning.   |
|   |   Sep 26, Sep 28   |   Chapter 3   |   Context-free grammars. Parsing.   |
|   |   Oct 3, Oct 5   |   Chapter 3   |   Context-free grammars. Parsing.   |
|   |   Oct 10, Oct 12   |   Chapter 3   |   Context-free grammars. Parsing.   |
|   |   Oct 17, Oct 19   |   Chapter 4   |   Top-down parsing.   |
|   |   Oct 24, Oct 26   |   Chapter 4   |   Top-down parsing.   |
|   |   Oct 31   |   |   Midterm examination.   |
|   |   Nov 2   |   Chapter 5   |   Bottom-up parsing.   |
|   |   Nov 7, Nov 9   |   Chapter 5   |   Bottom-up parsing.   |
|   |   Nov 14, Nov 16   |   |   Symbol tables. Type checking.   |
|   |   Nov 21   |   |   Symbol tables. Type checking.   |
|   |   Nov 23   |   |   No class.   |
|   |   Nov 28, Nov 30   |   |   Symbol tables. Type checking.   |
|   |   Dec 5, Dec 7   |   |   The MIPS computer.   |
|   |   Dec 12, Dec 14   |   |   The MIPS computer.   |
|   |   Dec 19   |   |   Final examination. (10:15 AM-12:15 PM)   |