Ben Liblit
For Fall 2009 I am teaching CS 706: Analysis of Software
Artifacts. This graduate course meets
Mondays, Wednesdays, and Fridays, 2:30 PM – 3:45 PM.
Fall 2009 office hours
are Thursdays, 3:30 PM – 5:00 PM.
Unscheduled drop-in visitors are usually welcome even outside of
regular office hours. I am in room 6357 of the Computer Science
building. Come on by and say hello!
I am an assistant professor of computer science, specializing in
software engineering and programming languages. My work in this
area began with a pioneering four-year field study on the
practice of programming. (That is, I was an actual grownup with
a real job as a software engineer.) Today it is the challenges
and needs of the professional programmer that inspire my
research.
My research team:
| Current Students |
Former Students |
|
|
|
Bug Isolation in an Imperfect World
How many times has your computer crashed this month? My current
focus is on improving software quality in a world where bugs are
a fact of life. I seek practical ways to use program analysis,
machine learning, and other techniques to understand and fix
bugs in the real world.
- Scalable Temporal Order Analysis for Large Scale Debugging,
SC 2009
- Cooperative Crug Isolation,
WODA 2009
- Error Propagation Analysis for File Systems,
PLDI 2009
- Holmes: Effective Statistical Debugging via Efficient Path Profiling,
ICSE 2009;
technical report 2008
- Lessons Learned at 208K: Towards Debugging Millions of Cores,
SC 2008
- Reflections on the Role of Static Analysis in Cooperative Bug Isolation,
SAS 2008 invited paper
- Effective Slicing: A Generalization of Full and Relevant Slicing,
technical report 2008
- EIO: Error Handling is Occasionally Correct,
FAST 2008
- Heap Typability is NP-Complete,
technical report 2007
- Statistical Debugging Using Latent Topic Models,
ECML 2007
- Statistical Debugging Using Compound Boolean Predicates,
ISSTA 2007
- Cooperative Bug Isolation: Winning Thesis of the 2005 ACM Doctoral Dissertation Competition,
LNCS volume 4440
- Dynamic Heap Type Inference for Program Understanding and Debugging,
POPL 2007
- WhatsAt: Dynamic Heap Type Inference for Program Understanding and Debugging,
technical report 2006
- Statistical Debugging: Simultaneous Identification of Multiple Bugs,
ICML 2006
- Path Optimization in Programs and its Application to Debugging,
ESOP 2006
- BTrace: Path Optimization for Debugging,
technical report 2005
- Scalable Statistical Bug Isolation,
PLDI 2005
- The Open Source Proving Grounds,
Bugs 2005
- Cooperative Bug Isolation,
doctoral dissertation, 2005
ACM Doctoral Dissertation Award
- Public Deployment of Cooperative Bug Isolation,
RAMSS 2004
- Statistical Debugging of Sampled Programs,
NIPS 2003
- Bug Isolation via Remote Program Sampling,
PLDI 2003
- Sampling User Executions for Bug Isolation,
RAMSS 2003
- Building a Better Backtrace: Techniques for Postmortem Program Analysis,
technical report 2002
The Cooperative Bug
Isolation Project is putting many of the above ideas to work
in a large scale, real world deployment. When theory collides
with practice, fun things happen.
Languages for Scientific Computing

Your supercomputer is only as good as the code you’re running
on it. As a member of the Titanium
project I developed a formal basis for understanding the behavior of
distributed data with applications in language design, algorithm
development, programming, and optimization.
Odds and Ends

I’ve also written a few things about other facets of
programming and program analysis.
- Automatic Generation of Library Bindings Using Static Analysis,
PLDI 2009
- Code Sandwiches,
technical report 2008
- An Operational Semantics for LogTM,
technical report 2006
- Extracting Output Formats from Executables,
WCRE 2006
- Supporting Nested Transactional Memory in LogTM,
ASPLOS XII
/
ASPLOS 2006
- Cognitive Perspectives on the Role of Naming in Computer Programs,
PPIG 2006
- Tool Support for Proof Engineering,
UITP 2006
- Estimating the Impact of Scalable Pointer Analysis on Optimization,
SAS 2001
- Transformation of Prolog Programs to Perform Update in Place: A Prototype Code Synthesizer,
undergraduate honors thesis, 1993