CSCI 410: Translation of Programming Languages

General Information
Fall 2006

[ Syllabus | Text | Homework | Project | Documentation | Lecture notes | Sample exams | Misc.

Final Exam: Wed. Dec. 6 11am-1pm in GFS 101
Bring your USC ID card.
Closed book; closed note.
Review session: Mon. Dec. 4 11am-1pm in OHE 132 (Studio B)


Instructor: Claire Bono
Office: Sal 310
Phone: 213-740-4510
Email: bono@usc.edu
Office hours, Fall 06:

Teaching Assistant: Ilya Eckstein
Office: PHE 108 (This is the IMSC Lab; knock to enter.)
Phone: 213-740-4177
Email: ieckstei@usc.edu
Office hours:

Grader: Avanthi Rajan
Email: arajan@usc.edu

Lectures: Mon & Wed 11-12:20 am in OHE 136
 

Course Overview

Prerequisites. CS 201 or equivalent object-oriented programming and data structures background. Corequisite: EE 357.

The purpose of the course is to teach you the theory and practice of constructing a compiler. We will study such topics as lexical analysis, parsing, semantic analysis, run-time organization, code generation, and optimization. During the course of the semester you will complete a significant compiler project. The language you will write the compiler for is object-oriented, as will be your implementation (using C++).  The techniques studied in this course are useful for many programming applications, for example, string matching for text processing applications, and parsing for the little command and expression languages that are the input of many programs.

Textbook

Readings are given in the syllabus .

Assignments and Grading

The following are the rough weights of each part of the course work. At the end of the semester, you will have a score out of 100 percent. This score will be used in a class curve to arrive at a letter grade. However, you will not be penalized if everyone does well: I guarantee that >=90 will be some kind of A, >=80 will at least be some kind of B, >=70 will at least be some kind of C, and that >=60 will at least be some kind of D.

 
Programs  45%
Homeworks  5%
Midterm  15%
Final exam  35%

The programs together form a compiler project. They will be graded primarily on correctness. Part of the grading process involves students meeting individually with the t.a., to demonstrate and answer questions about their programs. Homeworks are short written assignments.

Late policy. You may turn in a program up to two days (48 hours) late for a penalty of 10% of the available points. So, for example, if you would have gotten a 70/100, you will get 60/100 instead (not 63). After the two day grace period, a late program receives no credit. The late policy applies to the electronic submission time/date for the program, not to the demos. There is no grace period for homeworks.

Makeup exams will not be given. Absence due to a serious illness will be an acceptable reason for missing an exam, and the final grade will be scaled accordingly.

Academic integrity

The USC Student Conduct Code prohibits plagiarism. All USC students are responsible for reading and following the Student Conduct Code, which, as well as being available through the link just given, appears in the sections on University Governance (sections 10.00-16.00) in the current version of SCampus.

In this course we encourage students to study together. This includes discussing general strategies to be used on individual assignments. However, all work submitted for the class is to be done individually, unless an assignment specifies otherwise. Also, all exams are closed book, closed note.

Some examples of what is not allowed by the conduct code: copying all or part of someone else's work and submitting it as your own, giving another student in the class a copy of your assignment solution, consulting with another student during an exam. If you have questions about what is allowed, please discuss it with the instructor.

Because of past problems with plagiarism in this and other computer science courses, we may be running all submitted programming assignments through sophisticated plagiarism-detection software.

Violations of the Student Conduct Code will be filed with the Office of Student Judicial Affairs and Community Standards (SJACS), and appropriate sanctions will be given.

On-line course information

Course account: csci410
On-line versions of handouts, source code, etc. will be available to you via the course account. In general you should not email this account to communicate with course staff, but rather use the personal email addresses that appear near the top of this page.
Course web page: http://www-scf.usc.edu/~csci410
This document in front of you (which is also the class home page) and other course materials are available on the Web. This page is also accessible from the CS Department Course Information page, and from the instructor's home page. Links to other course materials (see following sections) will be added as the semester progresses.
totale
We will mostly be using the course web page for course materials. However we will be using totale for at least two things: maintaining student scores and a discussion board. The discussion board is for course-related questions and comments. We will monitor it, but if you have a question for the course staff, it's better to send us email directly, because we generally read email more often.

Homework


Project


Documentation

Documentation for software we use in this class.

  • GNU Documentation: This includes html documentation for flex, bison, GNU make (gmake), g++ (under gcc), and emacs.
  • An incremental FAQs page on compiling and running JAVA programs in UNIX

    Lecture notes

    On occasion the lecture will involve slides. These will be available here in pdf form unless otherwise noted. (Scanned versions of the hand-written lecture notes created during class are available on the den website.)

    Misc.


    Last modified Dec. 1, 2006 by Claire Bono, bono@usc.edu
    The University of Southern California does not screen or control the content on this website and thus does not guarantee the accuracy, integrity, or quality of such content. All content on this website is provided by and is the sole responsibility of the person from which such content originated, and such content does not necessarily reflect the opinions of the University administration or the Board of Trustees