Instructor:
P. Hatcher
Office: Nesmith 310A
Phone: 862-2678
E-mail: hatcher@unh.edu
Office Hours: MWF 1:30-2:00pm, Fri 3:00-4:00pm,
or by appointment (send e-mail to request an appointment).
The prerequisites for this course are CS671 and CS520.
This course has two major objectives:
An outline of the material covered by this course is given here.
Tentatively, the project will consist of five phases:
Each project assignment will be worth 100 points. Project assignments may be handed in late at a penalty of 2 points for one day late, 5 points for two days late, 10 points for three days late, 20 points for four days late, and 40 points for five days late. No program may be turned in more than 5 days late. An assignment is not considered late unless turned in after 8am on the day after the due date.
WARNING: All students are expected to do their own work on the project assignments (and homework and exams for that matter). No collaboration is allowed. A general rule to follow is that you may discuss the programs with other students at the concept level but never at the coding level. If you are at all unclear about this general rule, don't discuss the programs with other students at all.
WARNING: To get full credit on a project assignment, your code must be adequately documented and structured. If I can't easily read and understand your code, you will lose points!
We will be evaluating and modifying the language designed and implemented by the CS712/CS812 students last year. This language is known as T and is modeled on Java.
There will be three homework assignments given during the semester.
The rest (21%) of your course grade will be based upon a final examination. This examination will be comprehensive and will be closed book. The final exam will be Wednesday May 17 3:30-5:30pm. A sample final exam is available as a PDF file on the CIS machines in ~cs712/public/sample-final.pdf.
In summary, your course grade will be determined in the following way:
Students receiving at least 55% of the course points are guaranteed at least a D-. Students receiving at least 65% of the course points are guaranteed at least a C-. Students receiving at least 75% of the course points are guaranteed at least a B-. Students receiving at least 85% of the course points are guaranteed at least an A-.
On reserve in the Engineering, Math and Computer Science library in New Hampshire Hall:
We will use The Java Language Specification, 3rd edition, which is available on-line.
We will be using the GNU versions of lex and yacc. There are GNU manuals for both flex and bison.
We will also use two manuals that are available from Intel:
The manual for the GNU assembler will also be useful. (In particular, be aware that the syntax used by Intel differs from that used by the GNU assembler. See the relevant section of the GNU assembler manual.)
In addition, here is a guide for programming in Intel IA-32 assembler under Linux.
Finally, you will need to use gdb to debug both the compiler and the output of the compiler. The GNU manual for gdb is here. To debug at the assembly language level, read about the stepi/nexti commands, how to display registers, and the break *address command.
Comments and questions should be directed to hatcher@unh.edu