Syllabus for CS 351: Programming Language Theory and Compiler Construction - Spring 2009

InstructorJaymie Strecker
Lectures1:00-1:50pm MWF in Taylor 210

Course objectives

Students who complete this course will understand:
  1. The issues involved in the design and specification of a programming language. Students will be able to:
  2. The theory and implementation of compilers. Students will be able to:

Course materials

Textbook: Programming Language Processors in Java, David Watt and Deryck Brown, Prentice Hall, 2000 (ISBN-13: 9780130257864)
The book's website provides corrections (errata).

Triangle tools: To illustrate concepts in language specification and implementation, and to give you hands-on experience modifying a compiler, we will use a language called Triangle. Software tools for Triangle, including the compiler, can be downloaded here.

Haskell: To give you experience using a language in the functional paradigm, we will use Haskell. Documentation to help you learn Haskell can be found on Woodle and at www.haskell.org.

Schedule, lecture slides, homeworks, announcements, etc.: On Woodle.

Grades

Two midterm exams20%
Final exam15%
Research proposal15%
Programs30%
Homework10%
Participation10%

Participation: You will get more out of this course if you come to class prepared, speak up during discussions, and complete in-class exercises---and you will get a better grade. Please ask questions if you don't understand something! If you miss a lecture, you are responsible for getting the notes from a classmate.

Research proposal: See the description on Woodle.

Assignments (Homework and Programs): This will include written exercise sets and programming assignments (large and small). Each will be assigned with a due date and time. Late homework/programs will not be accepted. Start early in case you have questions---or in case you get sick the day before the assignment is due.

Exams: Any material covered in class, homeworks, or the assigned reading is fair game for exams. You are responsible for being in class during exams.

Extra credit: A student may make up for lost participation points by reading a scholarly article relevant to the class (and approved by me) and discussing it with me. Each article is worth 1 class session's participation points, and extra credit may be earned for up to 3 articles. Other opportunities for extra credit may be announced during the semester. All extra-credit opportunities will be available to all students.

Academic honesty

The College's understanding and expectations in regard to issues of academic honesty are fully articulated in the Code of Academic Integrity as published in The Scot's Key and form an essential part of the implicit contract between the student and the College. The Code provides a framework at Wooster to help students develop their own personal integrity.

While you are a student at this college, you will be treated as an adult. You are expected to know and abide by the rules of the institution as described in The Scot's Key and the Handbook of Selected College Policies. Particular attention should be directed to the appropriate use of materials available online through the Internet. It is important that you read and understand the ethical use of information. Whether intentional or not, improper use of materials can be considered a violation of academic honesty.

Cheating in any of your academic work is a serious breach of the Code of Academic Integrity and is grounds for an F in the entire course. Such violations include turning in another person's work as your own, copying from and source without proper citation, crossing the boundary of what is allowed in a group project, and lying in connection with your academic work. You will be held responsible for your actions. If you are unsure as to what is permissible, please contact your course instructor.

Accommodations

Learning disabilities: The Learning Center offers a variety of services and accomodations to students with learning disabilities based on appropriate documentation, nature of disability, and academic need. In order to initiate services, students should meet with Pam Rose, Director of the Learning Center, at the start of the semester to discuss reasonable accomodations. If a student does not request accomodations or does not provide documentation, the faculty member is under no obligation to provide accomodations. You may contact the Learning Center at ext. 2595 or through email at prose@wooster.edu.

Chronic medical/psychological conditions: The Longbrake Student Wellness Center (LSWC, ext. 2319) is available to help students handle chronic medical/psychological conditions (such as mono or depression). If you have a condition that may significantly affect your ability to succeed in this class, and if you are comfortable in signing a release to allow LSWC to talk to me about your care, I am willing to work with LSWC to determine what accomodations would be appropriate in your situation.

Class schedule (tentative)

The most detailed and up-to-date schedule is on Woodle.
WeekTopic
1 (1/12-1/16)Overview of course, (re-)introduction to compilers
2 (1/19-1/23)Syntactic analysis
3 (1/26-1/30)Syntactic analysis
4 (2/2-2/6)Contextual analysis
5 (2/9-2/13)Contextual analysis
6 (2/16-2/20)Run-time organization
7 (2/23-2/27)Run-time organization
8 (3/2-3/6)Code generation
- (3/9-3/13)(Spring break)
- (3/16-3/20)(Spring break)
9 (3/23-3/27)Code generation
10 (3/30-4/3)Language design, language paradigms
11 (4/6-4/10)Functional programming (Haskell)
12 (4/13-4/17)Functional programming (Haskell)
13 (4/20-4/24)Functional programming (Haskell)
(No class Fri. 4/24: IS Showcase)
14 (4/27-5/1)Research proposal presentations
5/4/09Final exam (Mon. 9:00am)