For this milestone you must:
- Make sure you all understand the CGI protocol, An
instantaneous introduction to CGI scripts and HTML forms.
- 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.
- 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.
- 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.