UCLA CS 232 Static Program Analysis Spring 2006
Homework 2
-
The goal of the homework is to write a competitive, context-sensitive
static program analysis using the
bddbddb tool.
-
You can work in groups of one or two.
-
The source language is
MiniJava.
The MiniJava grammar is in JavaCC format; you can use JTB and JavaCC
if you like; you can also rewrite the grammar into a different format.
If you want to work with a different source language, you are welcome
to do that; come talk with me first.
-
Your main task is to write the necessary code to be able to use the bddbddb tool
as described by John Whaley, Monica S. Lam in
Cloning-based context-sensitive pointer alias analysis using
binary decision diagrams.
-
Experiment with both a context-insensitive and a context-sensitive version
of the constraints; try algorithms 1-6 in the Whaley-Lam paper.
-
Write a MiniJava benchmark suite which helps illustrate
how the context-sensitive analysis gives more precise information
that the context-insensitive analysis.
-
Submit your benchmark suite along with a report [by email to Jens Palsberg (palsberg@ucla.edu)] which
-
details your implementation strategy,
-
shows the best of your MiniJava benchmark programs and explains in detail what
it helps illustrate and how, and
-
reports on the total time to analyze each of the MiniJava benchmark programs
with each of the algorithms,
both for the MiniJava programs
here
and the ones you wrote yourself.
- Prepare to show a demo of your program analysis.
- Ask me (palsberg@ucla.edu) if you have questions about MiniJava, JTB,
or JavaCC.