CMPU 331: Compiler Design

Submission Instructions

General Grading Rubric

I use the following rubric as a basis for grading:

Grade = 100 - {[CRASH]? + (n * Error) + (m * Issue)]}

where

CRASH 7
Error 3
Issue or Warning 1
CRASH

A CRASH is an error state not thrown by an error or exception in the Compiler project itself. For example if you write a LexicalErrorException, and my test file throws a LexicalErrorException, this does not count as a crash; if the error is thrown by the run-time environment, like a java.<something> exception, that counts as a crash.

An infinite loop also counts as a CRASH.

Error

An Error can be a problem with the language, such as returning incorrect Tokens, a grammar fault, incorrectly handling a semantic action, and so forth. Anything which causes improper or unexpected output is classed as an error.

Issue/Warning

I use 'warning' here in the same sense as a mainstream compiler: it is something of which you should be aware, but is not as significant as an Error. For example, not printing a symbol showing the Value portion of a Token is empty (e.g. with None, NULL or a “-”) would be an Issue.

Precedence

In cases where a situation can cause multiple faults, the highest fault takes precedence. For example, failing to read a character correctly (Error) causes an infinite loop (CRASH), the CRASH will take precedence.

Notes
  1. I list Errors and Warnings I have found, and report CRASHes, for which I am deducting points.
  2. If a project crashes, I reserve the right not to attempt to find a way to continue testing.
  3. It is my intention not to deduct points in later assignments for Errors or Issues already graded in earlier phases of the project.

Edge Cases

There may be cases where I feel the general rubric does not apply. For instance, if a project crashes consistently at an early point and it is impossible to fix in a short time, I reserve the right to apply a grade not based on the formula above. In short, if a project doesn't run, I can't grade it as though it had, and I can only give partial credit.

Grading Errors

If you feel I have made an error in grading or have any questions, please attend my office hours or make an appointment to review the grading. My office hours are listed on my Vassar webpage.