Past Projects
JavaSketch and Prospector
:
another sketching project, a programmer's search engine/code synthesizer based on jungloid mining
paper:
Mining Jungloids: Helping to Navigate the API Jungle
, PLDI'05
JavaSketch download
(at sourceforge)
Program Analysis:
Refinement-Based Context-Sensitive Points-To Analysis for Java,
PLDI'06
Demand-Driven Points-to Analysis for Java,
OOPSLA'05
ABCD:
Eliminating Array-Bounds Checks on Demand,
PLDI'00
Software Tools:
Thin Slicing
(a
poster
), PLDI'07
Ditto: Automatic Incrementalization of Data Structure Invariant Checks
, PLDI'07
Hardware support for debugging, dynamic analysis and optimization:
Runtime Specialization With Optimistic Heap Analysis
, OOPSLA'05
Regulated Transitive Reduction for Longer Memory Race Recording
, ASPLOS'06 (a
short article
in IEEE Micro)
Serializability Violation Detector for Shared-Memory Server Programs
, PLDI'05
A "Flight Data Recorder" for Enabling Full-system Multiprocessor Deterministic Replay,
ISCA’03
Rapid profiling via stratified sampling,
ISCA'01
An Efficient Profile-Analysis Framework for Data Layout Optimizations,
POPL'02
BAFL: Bottleneck Analysis of Fine-grain Parallelism
Focusing Processor Policies via Critical-Path Prediction
[ISCA'01]
Slack: Maximizing Performance under Technological Constraints
[ISCA'02]
Using Interaction Costs for Microarchitectural Bottleneck Analysis
[MICRO'03]
Software release: Critical-path analysis and criticality prediction for simplescalar (for now,
please ask for it
).
Specification Mining
: Learning Specifications of Software Correctnes
s
Mining Specifications
[POPL'02]
Debugging Temporal Specifications with Concept Analysis
[PLDI'03]
this project has evolved into the jungloid mining project called Prospector (see above)
Pathfinder:
path-sensitive value-flow optimizations
annotated bibliography