EDBT 2026 Demo / reviewers in the wild / expert
Benno Stein 0002
dblp:69/4806-2
· DBLP profile ↗
4ranked-venue papers
4as first author
2since 2021 · last 2024
0000-0002-0070-891XORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 4 · 4 first-author · 2 since 2021
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 · 88% Programming languages and type systems · 6% Concurrent programming · 6% | |
| Human-computer interaction and pervasive computing
1 paper |
User interface design and tools · 100% |
Topics — the 7 heaviest of 8, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis › static analysis
abstract interpretation |
1.6 | 3 | 2024 | Interactive Abstract Interpretation with Demanded Summarization · ACM Trans. Program. Lang. Syst. 2024 Demanded abstract interpretation · PLDI 2021 Static analysis with demand-driven value refinement · Proc. ACM Program. Lang. 2019 |
Program analysis
static analysis |
1.3 | 3 | 2024 | Interactive Abstract Interpretation with Demanded Summarization · ACM Trans. Program. Lang. Syst. 2024 Static analysis with demand-driven value refinement · Proc. ACM Program. Lang. 2019 Demanded abstract interpretation · PLDI 2021 |
Program analysis › static analysis › interprocedural analysis
compositional analysis |
0.8 | 1 | 2024 | Interactive Abstract Interpretation with Demanded Summarization · ACM Trans. Program. Lang. Syst. 2024 |
Program analysis › static analysis
incremental analysis |
0.8 | 1 | 2024 | Interactive Abstract Interpretation with Demanded Summarization · ACM Trans. Program. Lang. Syst. 2024 |
Program analysis
data flow analysis |
0.4 | 1 | 2019 | Static analysis with demand-driven value refinement · Proc. ACM Program. Lang. 2019 |
Concurrent programming › concurrency models
asynchronous programming |
0.3 | 1 | 2018 | Safe stream-based programming with refinement types · ASE 2018 |
Programming languages and type systems › type systems
refinement types |
0.3 | 1 | 2018 | Safe stream-based programming with refinement types · ASE 2018 |
Methods — techniques the papers use, named apart from their topics
summary dependency graph · 0.8demanded summarization · 0.8refinement types · 0.7incremental computation · 0.5demand-driven analysis · 0.5value refinement · 0.4abstract interpretation · 0.4
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2024 | Interactive Abstract Interpretation with Demanded SummarizationabstractWe consider the problem of making expressive, interactive static analyzers compositional . Such a technique could help bring the power of server-based static analyses to integrated development environments (IDEs), updating their results live as the code is modified. Compositionality is key for this scenario, as it enables reuse of already-computed analysis results for unmodified code. Previous techniques for interactive static analysis either lack compositionality, cannot express arbitrary abstract domains, or are not from-scratch consistent. We present demanded summarization, the first algorithm for incremental compositional analysis in arbitrary abstract domains that guarantees from-scratch consistency. Our approach analyzes individual procedures using a recent technique for demanded analysis, computing summaries on demand for procedure calls. A dynamically updated summary dependency graph enables precise result invalidation after program edits, and the algorithm is carefully designed to guarantee from-scratch-consistent results after edits, even in the presence of recursion and in arbitrary abstract domains. We formalize our technique and prove soundness, termination, and from-scratch consistency. An experimental evaluation of a prototype implementation on synthetic and real-world program edits provides evidence for the feasibility of this theoretical framework, showing potential for major performance benefits over non-demanded compositional analyses. Benno Stein 0002, Bor-Yuh Evan Chang, Manu Sridharan |
ACM Trans. Program. Lang. Syst. | 1 |
| 2021 | Demanded abstract interpretationabstractWe consider the problem of making expressive static analyzers interactive. Formal static analysis is seeing increasingly widespread adoption as a tool for verification and bug-finding, but even with powerful cloud infrastructure it can take minutes or hours to get batch analysis results after a code change. While existing techniques offer some demand-driven or incremental aspects for certain classes of analysis, the fundamental challenge we tackle is doing both for arbitrary abstract interpreters. Our technique, demanded abstract interpretation, lifts program syntax and analysis state to a dynamically evolving graph structure, in which program edits, client-issued queries, and evaluation of abstract semantics are all treated uniformly. The key difficulty addressed by our approach is the application of general incremental computation techniques to the complex, cyclic dependency structure induced by abstract interpretation of loops with widening operators. We prove that desirable abstract interpretation meta-properties, including soundness and termination, are preserved in our approach, and that demanded analysis results are equal to those computed by a batch abstract interpretation. Experimental results suggest promise for a prototype demanded abstract interpretation framework: by combining incremental and demand-driven techniques, our framework consistently delivers analysis results at interactive speeds, answering 95% of queries within 1.2 seconds. Benno Stein 0002, Bor-Yuh Evan Chang, Manu Sridharan |
PLDI | 1 |
| 2019 | Static analysis with demand-driven value refinementabstractStatic analysis tools for JavaScript must strike a delicate balance, achieving the level of precision required by the most complex features of target programs without incurring prohibitively high analysis time. For example, reasoning about dynamic property accesses sometimes requires precise relational information connecting the object, the dynamically-computed property name, and the property value. Even a minor precision loss at such critical program locations can result in a proliferation of spurious dataflow that renders the analysis results useless. We present a technique by which a conventional non-relational static dataflow analysis can be combined soundly with a value refinement mechanism to increase precision on demand at critical locations. Crucially, our technique is able to incorporate relational information from the value refinement mechanism into the non-relational domain of the dataflow analysis. We demonstrate the feasibility of this approach by extending an existing JavaScript static analysis with a demand-driven value refinement mechanism that relies on backwards abstract interpretation. Our evaluation finds that precise analysis of widely used JavaScript utility libraries depends heavily on the precision at a small number of critical locations that can be identified heuristically, and that backwards abstract interpretation is an effective mechanism to provide that precision on demand. Benno Stein 0002, Benjamin Barslev Nielsen, Bor-Yuh Evan Chang, Anders Møller |
Proc. ACM Program. Lang. | 1 |
| 2018 | Safe stream-based programming with refinement typesabstractIn stream-based programming, data sources are abstracted as a stream of values that can be manipulated via callback functions. Stream-based programming is exploding in popularity, as it provides a powerful and expressive paradigm for handling asynchronous data sources in interactive software. However, high-level stream abstractions can also make it difficult for developers to reason about control- and data-flow relationships in their programs. This is particularly impactful when asynchronous stream-based code interacts with thread-limited features such as UI frameworks that restrict UI access to a single thread, since the threading behavior of streaming constructs is often non-intuitive and insufficiently documented. Benno Stein 0002, Lazaro Clapp, Manu Sridharan, Bor-Yuh Evan Chang |
ASE | 1 |