CS 301 Languages and Compiler Design I - Winter 1999

Handing In Assignments

To help you understand how to hand in your assignment so that it is graded successfully, here is more detail on the way in which we will process your submissions.

1. The source files for each assignment and a makefile that builds the executable from them should be placed in a single mail bundle and mailed to cs301acc.

2. Bundles should be created using the Unix shar command, which combines the files given by its arguments into a single shell script that, when run, recreates the files. For example, you could submit the files makefile, lex.c, and main.c as follows:

shar makefile lex.c main.c | mail cs301acc@cs.pdx.edu

3. If your mail is successfully received by cs301acc, a reply message indicating this will be sent to you automatically. If you do not get a reply, your submission almost certainly failed to arrive; try again, or consult a tutor or the instructor.

4. We process your mail by saving your message to a file and then stripping off the mail header using the script /u/cs301acc/bin/striph. The remainder of the file is then submitted to sh for unbundling; this should produce one or more source files and a makefile (or Makefile if you prefer). We'll then execute make with the expectation that this will compile and build the sources into an executable with the correct name for the given assignment (for assignment 1, this name is interpreter, as specified in the handout). Then we'll execute the given executable on the public test files and on further test files of our selection, redirecting standard error and output to files. Finally, we compare these output files with the ``official'' ones.

5. Note that for this process to work, you must provide a working makefile. At a minimum, this file should have the executable as its first target, with instructions for building from source; it can have any additional targets you find useful. An example makefile for assignment 1 can be found among the provided files. You can copy and modify this as appropriate. Don't forget that tabs and spaces are not interchangeable in makefiles!

6. It's a good idea to try mailing your bundle to yourself, then make a clean directory and follow the steps above to unpack, compile, build and test your submission.

7. Remember: send assignments to cs301acc@cs.pdx.edu. Send queries about the course material to the instructor at apt@cs.pdx.edu. Please do not send queries to cs301list; interesting queries and responses will be echoed there by the instructor.

Andrew P. Tolmach