Project for 7135
The goal of this project is to get you some hands-on experience building
and experimenting with one or more program analyses.
Guidelines
-
You may work by yourself or with a partner on this project. Obviously,
if you work with a partner, your combined project should be more ambituous
than if you were working by yourself.
-
You may experiment with compiler and/or run-time program analyses in this
project.
Infrastructure
You may use the SUIF compiler infrastructure for this project. However,
if you wish, you can use some other infrastructure. Please keep in
mind that compiler infrastructures are often not the easiest things to
understand and use so I strongly recommend you stick to SUIF (with which
I can help when you run into problems) unless you have a very compelling
reason to do otherwise. If you decide not to use SUIF you should
at least try to pick an infrastructure in which you or a friend of yours
has considerable experience.
Deliverables
-
Proposal: The proposal should include a description of the
problem you will solve, the infrastructure you will use, how you will test
your analyses, and what experiments you will run on your analyses.
If you will be building on an existing code then you should also describe
how you intend to extend it. At the time you write your proposal
you should be familiar with the infrastructure and any code that you will
be extending. The proposal should be no longer than 2 pages of text
unless you are doing your project with a partner, in which case it can
be up to 3 pages.
-
Intermediate: At the time you write this document you should already
have implemented a working prototype of your analyses (you may make additions
to the prototype or tune it afterwards but the basic core should all be
there). This document should describe what you have built in detail
and what challenges you faced in building and debugging it. You should
also describe how you have tested the prototype. This document should
be no more than 3 pages of text if you are working by yourself and no more
than 5 pages if you are working with a partner.
-
Final: This document describes any extensions you made to your prototype
since the intermediate stage, the experiments you ran on your program analysis,
the results of the experiments, and an analysis of the results. When
you submit this document, you should attach the "proposal" and "intermediate"
documents to it.
-
Presentation: Give a 15 minute presentation on your project.
If you are working with a partner, you presentation can be up to 20 minutes
long.
Deadlines
Proposal due: March 2nd
"Intermediate" due: April 21st
Presentation: May 2nd and 4th
"Final" due: May 5th (last day of classes)