For this milestone you must:
  1. Make sure you all understand the CGI protocol, 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 WIG programs in the wig/ directory. You can test your WIG service using the binary versions of existing WIG compilers (here), assuming your environment is set up properly.
  3. Write a CGI script that implements some WIG service (i.e. "compile" a WIG service manually), 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. If it differs, you should include the service you are starting from. 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 target 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, what language features do not have immediately apparent semantics, based on your knowledge of C, Java, and HTML? What might be the right semantics for these features? It will be interesting for you to compare these notes with your actual experience after completing the project.

You should check in the source code for your WIG benchmark into a folder wig/benchmark/ in your Git repository, and the source code for your CGI executable into wig/cgi/. You should also check in a wig/benchmark/README file to accompany your WIG benchmark. You should finally check in a milestone report in reports/cgi_vs_wig.txt. Your milestone will not be complete until all of these things have been received. Following good practice, you should not check in any automatically generated files. On the other hand, if you want to use non-text media files, it is fine to check those in.