Software released by Ras Bodik's research group.


Context-Sensitive Points-to Analysis

A highly-efficient refinement algorithm for demand-driven points-to analysis (paper). Implemented in WALA. Maintained by Manu Sridharan. A different implementation of the points-to analysis algorithm will be included in the next Soot release. Ask if you need it earlier. Also maintained by Manu Sridharan.

JavaSketch

A second generation of the Prospector synthesizer (paper) for search and generation of Java API client code. Enables fine control of the API search and code syntehsis with a rich query language. An Eclipse plugin. Maintained by Liviu Tancau.

Thin slicing

An implementation of the thin slicing algorithm (paper) is included in WALA. No user interface yet but suitable for slicing experiments. Implemented by Stephen Fink (IBM).

Ditto

An incrementalizer of data structure invariant checks for Java (paper). Maintained by AJ Shankar.

SKETCH

A sketch-based synthesizer (paper, paper). Maintained by Gilad Arnold and Armando Solar-Lezama.

Prospector (web)

A web version of the Java API synthesizer. Maintained by Dave Mandelin.

Prospector

Eclipse plugin with the first generation of the Prospector. A simple user interface but less control over the synthesis. Maintained by Dave Mandelin.

String Type Discovery

Discovering string subtypes by mining a corpus of client code. A research prototype. Maintained by Dave Mandelin.

SVG Viewer

A viewer for large SVG graphs. Useful for viewing graphs generated by prorgam analysis tools. Easy panning and zooming, scaled printouts, and multiple-page printouts. Maintained by Dave Mandelin.

Lightweight 3-Valued Logic Analyzer

A specialized shape analysis tool. Uses a fixed, generic abstraction for analyzing the heap behavior of programs written in modern imperative languages like Java. Several novelties include the use of structure-based refinement, the definition and implementation of loose embedding, and the graph-based 3-valued structure implementation. Maintained by Gilad Arnold.

BAFL: Critical Path Analysis

Simplescalar-based framework for measuring the critical path, slack, cost. Ask Brian Fields for the code.

Courseware

"Remote Testing" Eclipse Plugin A plugin for displaying results of testing a student assignment on a server against a referecne solution. Displays errors and coverage. Used in our compiler courses. Written by Lexin Shan.

Other

Other (non-research) software released by members of our group: Random New York Times Crossword Link, Total Fragmentation, Sudoku Slam, Multi-Column Articles.