milestone: CGI vs. WIG
For this milestone you must:
- Make sure you all understand the CGI protocol, at least as
described in the reading for Week 5, An
instantaneous introduction to CGI scripts and HTML forms.
- Write a WIG service benchmark, and provide a link to it
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.
- Write a CGI script that implements some WIG service, and
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.
- Read the WIG project description and grammar and report on
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
and the source code for
group-X/wig/cgi/. You should also check in a
file to accompany your
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
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
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
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.