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:
- Mon 10:20-10:50 & 12:30-1
- Wed 10-10:50
- or by appointment
-
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:
- Tue 10:30-11:30
- Fri 10:30-11:30
- or by appointment
-
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
-
Thomas W. Parsons, Introduction to Compiler Construction, Freeman,
1992
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
- Homework 1. Due 9/8 by 2pm..
Where to turn in your homework: For non-DEN students, submit
your homework to the receptionist, Mai Lee, in Sal 300, the CS
department office. She sits at the desk just to the left of the door.
The office is closed for lunch from 12-1pm.
- Homework 2. Due 9/29, see assignment for details of submitting
- Homework 3. Due 10/27, see assignment for details of submitting
- Homework 4 (pdf). Due 11/15, start of lecture.
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.
- www.aps.anl.gov/helpdocs/gnu/contents.html.
This may be mirrored on other sites as well.
- text-based hypertext documentation available from within emacs. To
access this from inside emacs, type <esc> x info
(<esc> = escape key). You should see a menu of GNU programs
(and one menu option is on the info system itself). (Note: Does not include flex doc.)
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