EDBT 2026 Demo / reviewers in the wild / expert
Radu Grigore
dblp:12/1369
· DBLP profile ↗
17ranked-venue papers
7as first author
2since 2021 · last 2024
0000-0003-1128-0311ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 11 · 5 first-author · 1 since 2021Theory of computation · 8 · 3 first-author · 1 since 2021Artificial intelligence and machine learning · 2Applied, interdisciplinary, general and emerging computing · 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
8 papers |
Program analysis · 66% Program verification · 25% Programming languages and type systems · 6% | |
| Theoretical computer science
3 papers |
Distributed computing theory · 44% Algorithms and data structures · 34% Automated reasoning and model checking · 12% |
Topics — the 20 heaviest of 21, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
static analysis |
1.3 | 3 | 2024 | Enhancing Compositional Static Analysis with Dynamic Analysis · ASE 2024 Effective interactive resolution of static analysis alarms · Proc. ACM Program. Lang. 2017 Abstraction refinement guided by a learnt probabilistic model · POPL 2016 |
Program analysis › static analysis › modular analysis
compositional static analysis |
0.8 | 1 | 2024 | Enhancing Compositional Static Analysis with Dynamic Analysis · ASE 2024 |
Program verification
abstraction refinement |
0.4 | 2 | 2016 | Abstraction refinement guided by a learnt probabilistic model · POPL 2016 On abstraction refinement for program analyses in Datalog · PLDI 2014 |
Program verification › abstraction refinement
counterexample-guided abstraction refinement |
0.4 | 2 | 2016 | Abstraction refinement guided by a learnt probabilistic model · POPL 2016 On abstraction refinement for program analyses in Datalog · PLDI 2014 |
Programming languages and type systems
type checking |
0.3 | 1 | 2017 | Java generics are turing complete · POPL 2017 |
Program analysis › static analysis › pointer analysis › context-sensitive pointer analysis
object-sensitive pointer analysis |
0.2 | 1 | 2016 | Abstraction refinement guided by a learnt probabilistic model · POPL 2016 |
Program analysis › static analysis
pointer analysis |
0.2 | 1 | 2016 | Abstraction refinement guided by a learnt probabilistic model · POPL 2016 |
Algorithms and data structures
randomized algorithms |
0.2 | 1 | 2016 | Proving the Herman-Protocol Conjecture · ICALP 2016 |
Distributed computing theory
self-stabilization |
0.2 | 1 | 2016 | Proving the Herman-Protocol Conjecture · ICALP 2016 |
Program analysis
dynamic analysis |
0.2 | 1 | 2024 | Enhancing Compositional Static Analysis with Dynamic Analysis · ASE 2024 |
Compilers and program optimization
intermediate representation |
0.2 | 1 | 2015 | Tree Buffers · CAV (1) 2015 |
Program analysis › static analysis
datalog-based analysis |
0.2 | 1 | 2014 | On abstraction refinement for program analyses in Datalog · PLDI 2014 |
Program verification
automated verification |
0.1 | 1 | 2011 | jStar-eclipse: an IDE for automated verification of Java programs · SIGSOFT FSE 2011 |
Program verification › code-level verification
java verification |
0.1 | 1 | 2011 | jStar-eclipse: an IDE for automated verification of Java programs · SIGSOFT FSE 2011 |
Program verification › program logic
separation logic |
0.1 | 1 | 2011 | jStar-eclipse: an IDE for automated verification of Java programs · SIGSOFT FSE 2011 |
Program analysis › concurrent program analysis
data race analysis |
0.1 | 1 | 2017 | Effective interactive resolution of static analysis alarms · Proc. ACM Program. Lang. 2017 |
Automated reasoning and model checking › satisfiability
maximum satisfiability |
0.1 | 1 | 2017 | Maximum Satisfiability in Software Analysis: Applications and Techniques · CAV (1) 2017 |
Computational complexity
undecidability |
0.1 | 1 | 2017 | Java generics are turing complete · POPL 2017 |
Distributed computing theory › distributed graph algorithms
ring networks |
0.1 | 1 | 2016 | Proving the Herman-Protocol Conjecture · ICALP 2016 |
User interface design and tools › programming environments
integrated development environment |
0.0 | 1 | 2011 | jStar-eclipse: an IDE for automated verification of Java programs · SIGSOFT FSE 2011 |
Methods — techniques the papers use, named apart from their topics
static analysis · 0.8dynamic analysis · 0.8datalog · 0.7reduction from halting problem · 0.6user interaction · 0.3optimization problem formulation · 0.3separation logic · 0.2probabilistic model · 0.2martingale analysis · 0.2markov chain analysis · 0.2erdos–renyi random graph model · 0.2boolean satisfiability · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2024 | Enhancing Compositional Static Analysis with Dynamic AnalysisabstractIn this paper we introduce a novel method for improving static analysis of real code by using dynamic analysis. We have implemented our technique to enhance the Infer static analyzer [6] for Erlang by supplementing its analysis with data obtained by FAUSTA [24] dynamic analysis. We present the technical details of the algorithm combining static and dynamic analysis and a case study on its evaluation on WhatsApp's Erlang code to detect software defects. Results show an increase in detected bugs in 76% of the runs when data from dynamic analysis is used. In particular, on average, data provided by dynamic analysis for 1 function enables static analysis of 2.1 additional functions. Moreover, dynamic data enabled analysis of a property not verifiable using static analysis alone. Dino Distefano, Matteo Marescotti, Cons T. Åhs, Sopot Cela, Gabriela Cunha Sampaio, Radu Grigore, Ákos Hajdu, Timotej Kapus, Ke Mao, Thibault Suzanne |
ASE | 6 |
| 2021 | Selective monitoring
Radu Grigore, Stefan Kiefer |
J. Comput. Syst. Sci. | 1 |
| 2018 | Selective MonitoringabstractWe study selective monitors for labelled Markov chains. Monitors observe the outputs that are generated by a Markov chain during its run, with the goal of identifying runs as correct or faulty. A monitor is selective if it skips observations in order to reduce monitoring overhead. We are interested in monitors that minimize the expected number of observations. We establish an undecidability result for selectively monitoring general Markov chains. On the other hand, we show for non-hidden Markov chains (where any output identifies the state the Markov chain is in) that simple optimal monitors exist and can be computed efficiently, based on DFA language equivalence. These monitors do not depend on the precise transition probabilities in the Markov chain. We report on experiments where we compute these monitors for several open-source Java projects. Radu Grigore, Stefan Kiefer |
CONCUR | 1 |
| 2017 | Maximum Satisfiability in Software Analysis: Applications and Techniques
Xujie Si, Xin Zhang 0035, Radu Grigore, Mayur Naik |
CAV (1) | 3 |
| 2017 | Java generics are turing completeabstractThis paper describes a reduction from the halting problem of Turing machines to subtype checking in Java. It follows that subtype checking in Java is undecidable, which answers a question posed by Kennedy and Pierce in 2007. It also follows that Java's type checker can recognize any recursive language, which improves a result of Gill and Levy from 2016. The latter point is illustrated by a parser generator for fluent interfaces. Radu Grigore |
POPL | 1 |
| 2017 | Effective interactive resolution of static analysis alarmsabstractWe propose an interactive approach to resolve static analysis alarms. Our approach synergistically combines a sound but imprecise analysis with precise but unsound heuristics, through user interaction. In each iteration, it solves an optimization problem to find a set of questions for the user such that the expected payoff is maximized. We have implemented our approach in a tool, Ursa, that enables interactive alarm resolution for any analysis specified in the declarative logic programming language Datalog. We demonstrate the effectiveness of Ursa on a state-of-the-art static datarace analysis using a suite of 8 Java programs comprising 41-194 KLOC each. Ursa is able to eliminate 74% of the false alarms per benchmark with an average payoff of 12× per question. Moreover, Ursa prioritizes user effort effectively by posing questions that yield high payoffs earlier. Xin Zhang 0035, Radu Grigore, Xujie Si, Mayur Naik |
Proc. ACM Program. Lang. | 2 |
| 2016 | Proving the Herman-Protocol ConjectureabstractHerman's self-stabilisation algorithm, introduced 25 years ago, is a well-studied synchronous randomised protocol for enabling a ring of $N$ processes collectively holding any odd number of tokens to reach a stable state in which a single token remains. Determining the worst-case expected time to stabilisation is the central outstanding open problem about this protocol. It is known that there is a constant $h$ such that any initial configuration has expected stabilisation time at most $h N^2$. Ten years ago, McIver and Morgan established a lower bound of $4/27 \approx 0.148$ for $h$, achieved with three equally-spaced tokens, and conjectured this to be the optimal value of $h$. A series of papers over the last decade gradually reduced the upper bound on $h$, with the present record (achieved in 2014) standing at approximately $0.156$. In this paper, we prove McIver and Morgan's conjecture and establish that $h = 4/27$ is indeed optimal. Maria Bruna, Radu Grigore, Stefan Kiefer, Joël Ouaknine, James Worrell 0001 |
ICALP | 2 |
| 2016 | Abstraction refinement guided by a learnt probabilistic modelabstractThe core challenge in designing an effective static program analysis is to find a good program abstraction -- one that retains only details relevant to a given query. In this paper, we present a new approach for automatically finding such an abstraction. Our approach uses a pessimistic strategy, which can optionally use guidance from a probabilistic model. Our approach applies to parametric static analyses implemented in Datalog, and is based on counterexample-guided abstraction refinement. For each untried abstraction, our probabilistic model provides a probability of success, while the size of the abstraction provides an estimate of its cost in terms of analysis time. Combining these two metrics, probability and cost, our refinement algorithm picks an optimal abstraction. Our probabilistic model is a variant of the Erdos--Renyi random graph model, and it is tunable by what we call hyperparameters. We present a method to learn good values for these hyperparameters, by observing past runs of the analysis on an existing codebase. We evaluate our approach on an object sensitive pointer analysis for Java programs, with two client analyses (PolySite and Downcast). Radu Grigore, Hongseok Yang |
POPL | 1 |
| 2015 | Tree Buffers
Radu Grigore, Stefan Kiefer |
CAV (1) | 1 |
| 2014 | On abstraction refinement for program analyses in DatalogabstractA central task for a program analysis concerns how to efficiently find a program abstraction that keeps only information relevant for proving properties of interest. We present a new approach for finding such abstractions for program analyses written in Datalog. Our approach is based on counterexample-guided abstraction refinement: when a Datalog analysis run fails using an abstraction, it seeks to generalize the cause of the failure to other abstractions, and pick a new abstraction that avoids a similar failure. Our solution uses a boolean satisfiability formulation that is general, complete, and optimal: it is independent of the Datalog solver, it generalizes the failure of an abstraction to as many other abstractions as possible, and it identifies the cheapest refined abstraction to try next. We show the performance of our approach on a pointer analysis and a typestate analysis, on eight real-world Java benchmark programs. Xin Zhang 0035, Ravi Mangal, Radu Grigore, Mayur Naik, Hongseok Yang |
PLDI | 3 |
| 2013 | History-Register Automata
Nikos Tzevelekos, Radu Grigore |
FoSSaCS | 2 |
| 2013 | On QBF Proofs and Preprocessing
Mikolás Janota, Radu Grigore, João Marques-Silva 0001 |
LPAR | 2 |
| 2013 | Runtime Verification Based on Register Automata
Radu Grigore, Dino Distefano, Rasmus Lerchedahl Petersen, Nikos Tzevelekos |
TACAS | 1 |
| 2011 | jStar-eclipse: an IDE for automated verification of Java programsabstractjStar is a tool for automatically verifying Java programs. It uses separation logic to support abstract reasoning about object specifications. jStar can verify a number of challenging design patterns, including Subject/Observer, Visitor, Factory and Pooling. However, to use jStar one has to deal with a family of command-line tools that expect specifications in separate files and diagnose the errors by inspecting the text output from these tools. Daiva Naudziuniene, Matko Botincan, Dino Distefano, Mike Dodds, Radu Grigore, Matthew J. Parkinson |
SIGSOFT FSE | 5 |
| 2010 | Counterexample Guided Abstraction Refinement Algorithm for Propositional Circumscription
Mikolás Janota, Radu Grigore, João Marques-Silva 0001 |
JELIA | 2 |
| 2010 | How to Complete an Interactive Configuration Process?
Mikolás Janota, Goetz Botterweck, Radu Grigore, João Marques-Silva 0001 |
SOFSEM | 3 |
| 2009 | Strongest postcondition of unstructured programsabstractTo avoid exponential explosion, program verifiers turn the program into a passive form before generating verification conditions. A little known fact is that the passive form makes it easy to use a strongest postcondition calculus to derive the verification condition. In the first part of this paper, the passivation phase is defined precisely enough to allow a study of its algorithmic properties. In the second part, the weakest precondition and strongest postcondition methods are presented in a unified way and then compared empirically. Radu Grigore, Julien Charles, Fintan Fairmichael, Joseph Kiniry |
FTfJP@ECOOP | 1 |