VLDB 2026 Research / reviewers in the wild / expert
Michael Schwarz 0007
dblp:08/1117-7
· DBLP profile ↗
19ranked-venue papers
5as first author
19since 2021 · last 2026
0000-0002-9828-0308ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 19 · 5 first-author · 19 since 2021Theory of computation · 1 · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Mixed Flow-Sensitive Static Analysis: Engineering ModularityabstractAbstract Flow-sensitive and flow-insensitive analyses of programs occupy opposite ends of a spectrum. Between these extremes lie mixed flow sensitive approaches, where some aspects of program behavior are analyzed flow-insensitively and others flow-sensitively. Mixed flow-sensitivity arises, for example, in the analysis of multi-threaded code or code withnon-local control flow. Another instance is global store widening for efficient analysis of functional languages and some forms of pointer analysis. While mixed flow-sensitive analyses are common in the literature, the formulation of the particular analysis problem and the means to solve it are often tightly coupled. Side-effecting constraint systems provide a generic mechanism for describing mixed flow-sensitive analyses, thus decoupling the analysis definition from solver algorithm details. The abstract interpreter Goblint realizes this decoupling, and allows defining mixed flow-sensitive analyses independently of generic solvers. We indicate how the precision of specified analyses can be improved using digests (on the side of the formulation of the analysis problem) and suitable update rules (on the side of the solver). We explain how developers can use Goblint to implement their own mixed flow-sensitive analyses. Helmut Seidl, Vesal Vojdani, Julian Erhard, Michael Schwarz 0007 |
FM (2) | 4 |
| 2026 | Same Engine, Multiple Gears: Parallelizing Fixpoint Iteration at Different Granularities
Ali Rasim Kocal, Michael Schwarz 0007, Simmo Saan, Helmut Seidl |
TACAS (2) | 2 |
| 2026 | Goblint: A Portfolio for Mixed Flow-Sensitive Abstract Interpretation - (Competition Contribution)
Simmo Saan, Ali Rasim Kocal, Michael Petter, Karoliine Holter, Julian Erhard, Michael Schwarz 0007, Vesal Vojdani, Helmut Seidl |
TACAS (2) | 6 |
| 2026 | Data Race Detection by Digest-Driven Abstract Interpretation
Michael Schwarz 0007, Julian Erhard |
VMCAI | 1 |
| 2025 | Correctness Witnesses for Concurrent Programs: Bridging the Semantic Divide with Ghosts
Julian Erhard, Manuel Bentele, Matthias Heizmann, Dominik Klumpp, Simmo Saan, Frank Schüssele, Michael Schwarz 0007, Helmut Seidl, Sarah Tilscher, Vesal Vojdani |
VMCAI (1) | 7 |
| 2025 | Taking Out the Toxic Trash: Recovering Precision in Mixed Flow-Sensitive Static AnalysesabstractStatic analysis of real-world programs combines flow- and context-sensitive analyses of local program states with computation of flow- and context-insensitive invariants at globals , that, e.g., abstract data shared by multiple threads. The values of locals and globals may mutually depend on each other, with the analysis of local program states both making contributions to globals and querying their values. Usually, all contributions to globals are accumulated during fixpoint iteration, with widening applied to enforce termination. Such flow-insensitive information often becomes unnecessarily imprecise and can include superfluous contributions — trash — which, in turn, may be toxic to the precision of the overall analysis. To recover precision of globals, we propose techniques complementing each other: Narrowing on globals differentiates contributions by origin; reluctant widening limits the amount of widening applied at globals; and finally, abstract garbage collection undoes contributions to globals and propagates their withdrawal. The experimental evaluation shows that these techniques increase the precision of mixed flow-sensitive analyses at a reasonable cost. Fabian Stemmler, Michael Schwarz 0007, Julian Erhard, Sarah Tilscher, Helmut Seidl |
Proc. ACM Program. Lang. | 2 |
| 2025 | Context Gas and friends: taming context-sensitivity on the flyabstractAbstract Context-sensitive analysis of programs containing recursive procedures may be expensive. This may particularly be the case when expressive domains are used, rendering the set of possible contexts large or even infinite. Here we present a framework for context-sensitivity and, as a base step, show how to formalize full contexts, partial contexts, and call strings in it. In this framework, we propose three generic lifters that allow bounding the number of encountered contexts for existing analyses on the fly, i.e., without requiring a preanalysis: Context Widening, Loopfree Callsting, and Context Gas. The proposed analysis lifters maintain the soundness of the underlying base analyses. For these approaches, we prove that only finitely many function contexts are encountered during fixpoint iteration—a key requirement for termination—when the fixpoint iteration is known to update the value of each unknown only a finite number of times. Context Gas and friends are implemented within the abstract interpreter Goblint and compared to existing approaches to context-sensitivity on the SV-COMP benchmark suite. On a subset of recursive benchmarks, all proposed lifters manage to reduce the number of stack overflows and timeouts compared to a full context approach, with one configuration of the Context Gas approach improving the number of correct verdicts by $31\%$ 31 % and showing promising results on the considered SV-COMP categories. Julian Erhard, Johanna Franziska Schinabeck, Michael Schwarz 0007, Helmut Seidl |
Int. J. Softw. Tools Technol. Transf. | 3 |
| 2024 | Goblint Validator: Correctness Witness Validation by Abstract Interpretation - (Competition Contribution)abstractAbstract Goblintis an abstract interpretation framework for C programs with a specialty in concurrency. Using a novel approach, we turn it into a validator of YAML correctness witnesses for all SV-COMP categories. We describe its results at SV-COMP 2024 which includes the first large-scale evaluation of our validator. Simmo Saan, Julian Erhard, Michael Schwarz 0007, Stanimir Bozhilov, Karoliine Holter, Sarah Tilscher, Vesal Vojdani, Helmut Seidl |
TACAS (3) | 3 |
| 2024 | Goblint: Abstract Interpretation for Memory Safety and Termination - (Competition Contribution)abstractAbstract Goblintis an abstract interpreter of C programs, focusing on the analysis of multi-threaded code. It is equipped with a variety of abstract domains, as well as analyses which allow it to reason about an array of program properties in a highly configurable manner.Goblinthas been extended with support for the detection of memory safety bugs and non-termination. Simmo Saan, Julian Erhard, Michael Schwarz 0007, Stanimir Bozhilov, Karoliine Holter, Sarah Tilscher, Vesal Vojdani, Helmut Seidl |
TACAS (3) | 3 |
| 2024 | Correctness Witness Validation by Abstract Interpretation
Simmo Saan, Michael Schwarz 0007, Julian Erhard, Helmut Seidl, Sarah Tilscher, Vesal Vojdani |
VMCAI (1) | 2 |
| 2024 | Interactive abstract interpretation: reanalyzing multithreaded C programs for cheapabstractAbstract To put sound program analysis at the fingertips of the software developer, we propose a framework for interactive abstract interpretation of multithreaded C code. Abstract interpretation provides sound analysis results, but can be quite costly in general. To achieve quick response times, we incrementalize the analysis infrastructure, including postprocessing, without necessitating any modifications to the analysis specifications themselves. We rely on the local generic fixpoint engine TD – which we enhance with reluctant destabilization to minimize reanalysis effort. Dedicated further improvements support precise incremental analysis of program properties that include concurrency deficiencies such as data-races. The framework has been implemented in the static analyzer Goblint, and combined with the MagpieBridge framework to relay findings to IDEs. We evaluate our implementation w.r.t. the yard sticks of response time and consistency. We also provide examples of program development highlighting the usability of our approach. Julian Erhard, Simmo Saan, Sarah Tilscher, Michael Schwarz 0007, Karoliine Holter, Vesal Vojdani, Helmut Seidl |
Int. J. Softw. Tools Technol. Transf. | 4 |
| 2024 | When long jumps fall short: control-flow tracking and misuse detection for nonlocal jumps in CabstractAbstract The C programming language offers as a mechanism for nonlocal control flow. This mechanism has complicated semantics. As most developers do not encounter it day-to-day, they may be unfamiliar with all its intricacies – leading to subtle programming errors. At the same time, most static analyzers lack proper support, implying that otherwise sound tools miss whole classes of program deficiencies. We propose a concrete semantics of a subset of C with , where interprocedural s are performed directly, as well as an equivalent formulation where such jumps are implemented via stack-unwinding at the call-sites. Reflecting this semantic equivalence, we propose an approach for lifting existing interprocedural analyses to support and to flag their misuse. To deal with the nonlocal semantics, our approach leverages side-effecting transfer functions, which, when executed, may additionally trigger contributions for program points that are not static control-flow successors. We showcase our analysis on a real-world example and propose a set of litmus tests for other analyzers. Julian Erhard, Michael Schwarz 0007, Vesal Vojdani, Simmo Saan, Helmut Seidl |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2024 | The digest framework: concurrency-sensitivity for abstract interpretationabstractAbstract Thread-modular approaches to static analysis help mitigate the state space explosion encountered when analyzing multi-threaded programs. This is enabled by abstracting away some aspects of interactions between threads. We propose the notion of concurrency-sensitivity, which determines how an analysis takes the computation history of a multi-threaded program into account to exclude spurious thread interactions. Just as for other form of sensitivity, such as flow-, context, and path-sensitivity, there is a trade-off to be made between precision and scalability. The choice of concurrency-sensitivity is typically hard-coded into the analysis. However, the suitability of a chosen sensitivity hinges on the program and property to be analyzed. We thus propose to decouple the concurrency-sensitivity from the analysis and realize this in a generic framework. The framework allows for the seamless incorporation of custom abstractions of the computation history of a thread, so-called digests, to exclude spurious thread interactions. While concrete digests track properties precisely, the framework enables further abstraction through abstract digests. These may decrease analysis cost while hopefully retaining precision for the property of interest. We propose digests that, e.g., track held mutexes, thread IDs, or observed events. Digests tailored to programming language features, such as condition variables or recursive mutexes, highlight the framework’s versatility. Michael Schwarz 0007, Julian Erhard |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2024 | Non-numerical weakly relational domainsabstractAbstract The weakly relational domain of Octagons offers a decent compromise between precision and efficiency for numerical properties. Here, we are concerned with the construction of non-numerical relational domains. We provide a general construction of weakly relational domains, which we exemplify with an extension of constant propagation by disjunctions. Since for the resulting domain of 2-disjunctive formulas satisfiability is NP-complete, we provide a general construction for a further, more abstract, weakly relational domain where the abstract operations of restriction and least upper bound can be efficiently implemented. In the second step, we consider a relational domain that tracks conjunctions of inequalities between variables, and between variables and constants for arbitrary partial orders of values. Examples are sub(multi)sets, as well as prefix, substring or scattered substring orderings on strings. When the partial order is a lattice, we provide precise polynomial algorithms for satisfiability, restriction, and the best abstraction of disjunction. Complementary to the constructions for lattices, we find that, in general, satisfiability of conjunctions is NP-complete. We therefore again provide polynomial abstract versions of restriction, conjunction, and join. By using our generic constructions, these domains are extended to weakly relational domains that additionally track disjunctions. For all our domains, we indicate how abstract transformers for assignments and guards can be constructed. Helmut Seidl, Julian Erhard, Sarah Tilscher, Michael Schwarz 0007 |
Int. J. Softw. Tools Technol. Transf. | 4 |
| 2023 | Clustered Relational Thread-Modular Abstract Interpretation with Local TracesabstractAbstract We construct novel thread-modular analyses that track relational information for potentially overlapping clusters of global variables – given that they are protected by common mutexes. We provide a framework to systematically increase the precision of clustered relational analyses by splitting control locations based on abstractions of local traces. As one instance, we obtain an analysis of dynamic thread creation and joining. Interestingly, tracking less relational information for globals may result in higher precision. We consider the class of 2-decomposable domains that encompasses many weakly relational domains (e.g., Octagons). For these domains, we prove that maximal precision is attained already for clusters of globals of sizes at most 2. Michael Schwarz 0007, Simmo Saan, Helmut Seidl, Julian Erhard, Vesal Vojdani |
ESOP | 1 |
| 2023 | Octagons Revisited - Elegant Proofs and Simplified Algorithms
Michael Schwarz 0007, Helmut Seidl |
SAS | 1 |
| 2023 | Goblint: Autotuning Thread-Modular Abstract Interpretation - (Competition Contribution)abstractAbstract The static analyzer Goblint is dedicated to the analysis of multi-threaded C programs by abstract interpretation. It provides multiple techniques for increasing analysis precision, e.g., configurable context-sensitivity and a wide range of numerical analyses. As a rule of thumb, more precise analyses decrease scalability, while not always necessary for solving the task at hand. Therefore, Goblint has been enhanced with autotuning which, based on syntactical criteria, adapts analysis configuration to the given program such that relevant precision is obtained with acceptable effort. Simmo Saan, Michael Schwarz 0007, Julian Erhard, Manuel Pietsch, Helmut Seidl, Sarah Tilscher, Vesal Vojdani |
TACAS (2) | 2 |
| 2021 | Improving Thread-Modular Abstract Interpretation
Michael Schwarz 0007, Simmo Saan, Helmut Seidl, Kalmer Apinis, Julian Erhard, Vesal Vojdani |
SAS | 1 |
| 2021 | Goblint: Thread-Modular Abstract Interpretation Using Side-Effecting Constraints - (Competition Contribution)abstractAbstract Goblintis a static analysis framework for C programs specializing in data race analysis. It relies on thread-modular abstract interpretation where thread interferences are accounted for by means of flow-insensitive global invariants. Simmo Saan, Michael Schwarz 0007, Kalmer Apinis, Julian Erhard, Helmut Seidl, Ralf Vogler, Vesal Vojdani |
TACAS (2) | 2 |