EDBT 2026 Demo / reviewers in the wild / expert
Benjamin Chelf
dblp:28/2333
· DBLP profile ↗
5ranked-venue papers
1as first author
0since 2021 · last 2002
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 5 · 1 first-authorSystems, architecture and hardware · 1
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
4 papers |
Program analysis · 68% Program verification · 17% Operating systems · 12% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Memory systems · 100% |
Topics — the 10 heaviest of 11, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
static analysis |
0.1 | 3 | 2001 | An Empirical Study of Operating System Errors · SOSP 2001 Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions · OSDI 2000 Using Meta-level Compilation to Check FLASH Protocol Code · ASPLOS 2000 |
Program analysis › static analysis
bug detection |
0.0 | 1 | 2002 | A System and Language for Building System-Specific, Static Analyses · PLDI 2002 |
Program analysis › static analysis › interprocedural analysis
context-sensitive analysis |
0.0 | 1 | 2002 | A System and Language for Building System-Specific, Static Analyses · PLDI 2002 |
Program analysis › static analysis
interprocedural analysis |
0.0 | 1 | 2002 | A System and Language for Building System-Specific, Static Analyses · PLDI 2002 |
Program verification › invariant verification
invariant checking |
0.0 | 1 | 2000 | Using Meta-level Compilation to Check FLASH Protocol Code · ASPLOS 2000 |
Program analysis › program analysis infrastructure
meta-level compilation |
0.0 | 1 | 2000 | Using Meta-level Compilation to Check FLASH Protocol Code · ASPLOS 2000 |
Program verification › protocol verification
protocol code verification |
0.0 | 1 | 2000 | Using Meta-level Compilation to Check FLASH Protocol Code · ASPLOS 2000 |
Empirical software engineering
mining software repositories |
0.0 | 1 | 2001 | An Empirical Study of Operating System Errors · SOSP 2001 |
Memory systems
cache coherence |
0.0 | 1 | 2000 | Using Meta-level Compilation to Check FLASH Protocol Code · ASPLOS 2000 |
Memory systems › cache coherence › cache coherence protocol
cache coherence protocol verification |
0.0 | 1 | 2000 | Using Meta-level Compilation to Check FLASH Protocol Code · ASPLOS 2000 |
Methods — techniques the papers use, named apart from their topics
system-specific checkers · 0.1meta-level compilation · 0.1context-sensitive interprocedural analysis · 0.0static compiler analysis · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2002 | How to write system-specific, static checkers in metalabstractThis paper gives an overview of the metal language, which we have designed to make it easy to construct system-specific, static analyses. We call these analyses extensions because they act as the input to a generic analysis engine that runs the static analysis over a given source base. We also interchangeably refer to them as checkers because they check that a user-specified property holds in the source base and report any violations of that property. Note that checkers may not detect all violations of a specified property. Their goal is to find as many violations as possible with a minimum of false positives Benjamin Chelf, Dawson R. Engler, Seth Hallem |
PASTE | 1 |
| 2002 | A System and Language for Building System-Specific, Static AnalysesabstractThis paper presents a novel approach to bug-finding analysis and an implementation of that approach. Our goal is to find as many serious bugs as possible. To do so, we designed a flexible, easy-to-use extension language for specifying analyses and an efficent algorithm for executing these extensions. The language, metal, allows the users of our system to specify a broad class of analyses in terms that resemble the intuitive description of the rules that they check. The system, xgcc, executes these analyses efficiently using a context-sensitive, interprocedural analysis. Our prior work has shown that the approach described in this paper is effective: it has successfully found thousands of bugs in real systems code. This paper describes the underlying system used to achieve these results. We believe that our system is an effective framework for deploying new bug-finding analyses quickly and easily. Seth Hallem, Benjamin Chelf, Yichen Xie 0001, Dawson R. Engler |
PLDI | 2 |
| 2001 | An Empirical Study of Operating System ErrorsabstractWe present a study of operating system errors found by automatic, static, compiler analysis applied to the Linux and OpenBSD kernels. Our approach differs from previous studies that consider errors found by manual inspection of logs, testing, and surveys because static analysis is applied uniformly to the entire kernel source, though our approach necessarily considers a less comprehensive variety of errors than previous studies. In addition, automation allows us to track errors over multiple versions of the kernel source to estimate how long errors remain in the system before they are fixed.We found that device drivers have error rates up to three to seven times higher than the rest of the kernel. We found that the largest quartile of functions have error rates two to six times higher than the smallest quartile. We found that the newest quartile of files have error rates up to twice that of the oldest quartile, which provides evidence that code "hardens" over time. Finally, we found that bugs remain in the Linux kernel an average of 1.8 years before being fixed. Andy Chou, Benjamin Chelf, Seth Hallem, Dawson R. Engler |
SOSP | 3 |
| 2000 | Using Meta-level Compilation to Check FLASH Protocol CodeabstractBuilding systems such as OS kernels and embedded software is difficult. An important source of this difficulty is the numerous rules they must obey: interrupts cannot be disabled for ~too long," global variables must be protected by locks, user pointers passed to OS code must be checked for safety before use, etc. A single violation can crash the system, yet typically these invariants are unchecked, existing only on paper or in the implementor's mind.This paper is a case study in how system implementors can use a new programming methodology, meta-level compilation (MC), to easily check such invariants. It focuses on using MC to check for errors in the code used to manage cache coherence on the FLASH shared memory multiprocessor. The only real practical method known for verifying such code is testing and simulation. We show that simple, system-specific checkers can dramatically improve this situation by statically pinpointing errors in the program source. These checkers can be written by implementors themselves and, by exploiting the system-specific information this allows, can detect errors unreachable with other methods. The checkers in this paper found 34 bugs in FLASH code despite the care used in building it and the years of testing it has undergone. Many of these errors fall in the worst category of systems bugs: those that show up sporadically only after days of continuous use. The case study is interesting because it shows that the MC approach finds serious errors in well-tested, non-toy systems code. Further, the code to find such bugs is usually 10-100 lines long, written in a few hours, and exactly locates errors that, if discovered during testing, would require several days of investigation by an experienced implementor.The paper presents 8 checkers we wrote, their application to five different protocol implementations, and a discussion of the errors that we found. Andy Chou, Benjamin Chelf, Dawson R. Engler, Mark A. Heinrich |
ASPLOS | 2 |
| 2000 | Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions
Dawson R. Engler, Benjamin Chelf, Andy Chou, Seth Hallem |
OSDI | 2 |