UCLA CS 232 Static Program Analysis Spring 2006
The goal of the homework is to write a competitive, context-sensitive
static program analysis using the
You can work in groups of one or two.
The source language is
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 (firstname.lastname@example.org)] 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
and the ones you wrote yourself.
- Prepare to show a demo of your program analysis.
- Ask me (email@example.com) if you have questions about MiniJava, JTB,