milestone: CGI vs. WIG

For this milestone you must:
  1. Make sure you all understand the CGI protocol, at least as far as described in the reading for Week 5, An instantaneous introduction to CGI scripts and HTML forms.
  2. Write a WIG service benchmark, and provide a link to it running somewhere. Your WIG service should be interactive and attempt to take advantage of WIG language features. We will be grading it for meaningful feature coverage, clarity, documentation, correctness, and originality. However, please do not worry about your program doing everything possible with WIG unless you really want it to. You can see the example programs in the wig/ directory as well as old WIG benchmarks for reference. You can test your WIG service using the binary versions of existing WIG compilers, provided your environment is set up correctly.
  3. Write a CGI script that implements some WIG service, and provide a link to it running somewhere. It does not need to be a full CGI implementation of your actual WIG benchmark, although it can be if you like. You can use any language, and you should discuss how a compiler might go about generating this code starting from a WIG service, and what extra complications might be required to translate your actual WIG benchmark. Your choice of language here does not commit you to using it as your WIG compiler target.
  4. Read the WIG project description and grammar and report on what you see as potential difficulties. In particular look our for operators and/or other language features whose semantics (meaning) might not be immediately apparent. What could be useful semantics for these features? (you can keep this short) It will be interesting for you to compare this with your actual experience after completing the project.

You should check in the source code for question 2 into group-X/wig/benchmark/ and the source code for question 3 into group-X/wig/cgi/. You should also check in a group-X/wig/benchmark/README file to accompany your WIG benchmark. You should finally check in a milestone report that addresses all four tasks as group-X/reports/cgi_vs_wig.txt. Remember that if you write your milestone report well enough then you can likely reuse portions of it in your final project report. Your milestone will not be complete until all of these things have been received. Do not check in any binary or generated files. Of course, if you want to use non-text media files that is acceptable.

This milestone is small and you should be able to complete it quickly. You should take the time now to ensure that you are familiar with either SableCC or Flex and Bison; you will be writing the WIG scanner, parser, and pretty printer for the next milestone. If you have time, get started on the next milestone early - it will require more time to be completed.

This milestone is due on the Friday of Week 6. Remember that successfully completing the milestones is a key factor in completing the WIG project, and that timely completion of milestones is part of the grade for the course.

There is no need to email us on completion. Unless you took a late day we will automatically take the version into account that was checked in last before the point of the deadline.

Maintained by Eric Bodden. [HOME]