Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Nicholas Jalbert

dblp:48/213 · DBLP profile ↗
← Back
3ranked-venue papers
2as first author
0since 2021 · last 2010
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 2 · 1 first-authorSystems, architecture and hardware · 1 · 1 first-authorSecurity and privacy · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Debugging and program repair · 44% Program verification · 27% Concurrent programming · 15%

Topics — the 6 heaviest of 6, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Debugging and program repair
fault localization
0.222010
A trace simplification technique for effective debugging of concurrent programs · SIGSOFT FSE 2010
Looper: Lightweight Detection of Infinite Loops at Runtime · ASE 2009
Concurrent programming
concurrency bugs
0.112010
A trace simplification technique for effective debugging of concurrent programs · SIGSOFT FSE 2010
Debugging and program repair
concurrent program debugging
0.112010
A trace simplification technique for effective debugging of concurrent programs · SIGSOFT FSE 2010
Program analysis
dynamic analysis
0.112009
Looper: Lightweight Detection of Infinite Loops at Runtime · ASE 2009
Program verification › termination analysis
non-termination detection
0.112009
Looper: Lightweight Detection of Infinite Loops at Runtime · ASE 2009
Program verification › dynamic verification
runtime verification
0.112009
Looper: Lightweight Detection of Infinite Loops at Runtime · ASE 2009

Methods — techniques the papers use, named apart from their topics

trace granularity increase · 0.1heuristic algorithm · 0.1symbolic execution · 0.1SMT solving · 0.1
YearPublicationVenuePosition
2010 A trace simplification technique for effective debugging of concurrent programs
abstract
Concurrent programs are notoriously difficult to debug. We see two main reasons for this: 1) concurrency bugs are often difficult to reproduce, 2) traces of buggy concurrent executions can be complicated by fine-grained thread interleavings. Recently, a number of efficient techniques have tried to address the former reproducibility problem; however, there is no effective solution for the latter trace simplification problem. In this paper, we formalize and prove the trace simplification problem is NP-hard. We then propose a heuristic algorithm, Tinertia, that transforms a buggy execution trace into an easier-to-understand simplified trace. Tinertia works by automatically and iteratively increasing the granularity of the thread interleavings in the buggy trace. Tinertia cannot guarantee optimal simplification; however, we empirically show that our algorithm often generates optimally simplified traces. Moreover, we show that in the simplified trace, the locations of preemptive context switches point to the cause of the bug. We have implemented Tinertia in a tool for C/C++ programs using Pthreads and applied it to 11 benchmarks with up to 37,000 lines of code.
Nicholas Jalbert, Koushik Sen
SIGSOFT FSE1
2009 Looper: Lightweight Detection of Infinite Loops at Runtime
abstract
When a running program becomes unresponsive, it is often impossible for a user to determine if the program is performing some useful computation or if it has entered an infinite loop. We present LOOPER, an automated technique for dynamically analyzing a running program to prove that it is non-terminating. LOOPER uses symbolic execution to produce simple non-termination arguments for infinite loops dependent on both program values and the shape of heap. The constructed arguments are verified with an off-the-shelf SMT solver. We have implemented our technique in a prototype tool for Java applications, and we demonstrate our technique's effectiveness on several non-terminating benchmarks, including a reported infinite loop bug in open-source text editor jEdit. Our tool is able to dynamically detect infinite loops deep in the execution of large Java programs with no false warnings, producing symbolic arguments that can aid in debugging non-termination.
Jacob Burnim, Nicholas Jalbert, Christos Stergiou 0001, Koushik Sen
ASE2
2008 Automated duplicate detection for bug tracking systems
abstract
Bug tracking systems are important tools that guide the maintenance activities of software developers. The utility of these systems is hampered by an excessive number of duplicate bug reports-in some projects as many as a quarter of all reports are duplicates. Developers must manually identify duplicate bug reports, but this identification process is time-consuming and exacerbates the already high cost of software maintenance. We propose a system that automatically classifies duplicate bug reports as they arrive to save developer time. This system uses surface features, textual semantics, and graph clustering to predict duplicate status. Using a dataset of 29,000 bug reports from the Mozilla project, we perform experiments that include a simulation of a real-time bug reporting environment. Our system is able to reduce development cost by filtering out 8% of duplicate bug reports while allowing at least one report for each real defect to reach developers.
Nicholas Jalbert, Westley Weimer
DSN1