Demo Data from VLDB 2026 / reviewers in the wild / expert
Ivan Kuraj
dblp:129/1282
· DBLP profile ↗
7ranked-venue papers
3as first author
2since 2021 · last 2025
0000-0001-5891-0208ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 6 · 2 first-author · 1 since 2021Systems, architecture and hardware · 1 · 1 first-author · 1 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.
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Distributed systems · 100% | |
| Software engineering, system software, and programming languages
4 papers |
Program synthesis and code generation · 79% Program verification · 17% Software testing · 5% |
Topics — the 10 heaviest of 13, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Distributed systems › replication
partial replication |
1.4 | 2 | 2025 | Peepco: Batch-Based Consistency Optimization · Proc. ACM Program. Lang. 2025 Optimizing consistency for partially replicated data stores · PPoPP 2022 |
Distributed systems
replication |
1.4 | 2 | 2025 | Peepco: Batch-Based Consistency Optimization · Proc. ACM Program. Lang. 2025 Optimizing consistency for partially replicated data stores · PPoPP 2022 |
Distributed systems › replication › replicated data management
replicated data stores |
0.6 | 1 | 2022 | Optimizing consistency for partially replicated data stores · PPoPP 2022 |
Program synthesis and code generation
type-directed synthesis |
0.4 | 2 | 2016 | Program synthesis from polymorphic refinement types · PLDI 2016 Complete completion using types and weights · PLDI 2013 |
Program synthesis and code generation
code completion |
0.2 | 1 | 2013 | Complete completion using types and weights · PLDI 2013 |
Program synthesis and code generation › inductive program synthesis
recursive program synthesis |
0.2 | 1 | 2013 | Synthesis modulo recursive functions · OOPSLA 2013 |
Program synthesis and code generation › type-directed synthesis
type inhabitation |
0.2 | 1 | 2013 | Complete completion using types and weights · PLDI 2013 |
Program verification › type-based verification
refinement type checking |
0.1 | 1 | 2016 | Program synthesis from polymorphic refinement types · PLDI 2016 |
Software testing › random testing
property-based testing |
0.1 | 1 | 2015 | Programming with enumerable sets of structures · OOPSLA 2015 |
Logic in computer science › type theory
algebraic data types |
0.0 | 1 | 2013 | Synthesis modulo recursive functions · OOPSLA 2013 |
Methods — techniques the papers use, named apart from their topics
static inference · 0.9distributed protocol design · 0.9trace analysis · 0.6invariant inference · 0.6satisfiability modulo theories · 0.3counterexample-guided synthesis · 0.3specification decomposition · 0.2polymorphic refinement types · 0.2pairing functions · 0.2dependent enumeration · 0.2combinator algebra · 0.2type inhabitation · 0.2corpus-based ranking · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Peepco: Batch-Based Consistency OptimizationabstractWe present batch-based consistency, a new approach for consistency optimization that allows programmers to specialize consistency with application-level integrity properties. We implement the approach with a two-step process: we statically infer optimal consistency requirements for executions of bounded sets of operations, and then, use the inferred requirements to parameterize a new distributed protocol to relax operation reordering at run time when it is safe to do so. Our approach supports standard notions of consistency. We implement batch-based consistency in Peepco , demonstrate its expressiveness for partial data replication, and examine Peepco’s run-time performance impact in different settings. Ivan Kuraj, John K. Feser, Nadia Polikarpova, Armando Solar-Lezama |
Proc. ACM Program. Lang. | 1 |
| 2022 | Optimizing consistency for partially replicated data storesabstractWe present a framework that allows programmers to specify replicated data stores through application logic, data replication scheme, and high-level invariants that needs to be satisfied. From such specifications all the needed consistency requirements can be inferred from traces of executions of the potential data store, to determine the optimal data store coordination. The framework supports arbitrarily complex data store operations and partial data replication. This leads to expressiveness for a wide range of data stores, with significant run-time performance benefits. Ivan Kuraj, Armando Solar-Lezama, Nadia Polikarpova |
PPoPP | 1 |
| 2017 | DemoMatch: API discovery from demonstrationsabstractWe introduce DemoMatch, a tool for API discovery that allows the user to discover how to implement functionality using a software framework by demonstrating the functionality in existing applications built with the same framework. DemoMatch matches the demonstrations against a database of execution traces called Semeru and generates code snippets explaining how to use the functionality. We evaluated DemoMatch on several case studies involving Java Swing and Eclipse RCP. Kuat Yessenov, Ivan Kuraj, Armando Solar-Lezama |
PLDI | 2 |
| 2016 | Program synthesis from polymorphic refinement typesabstractWe present a method for synthesizing recursive functions that provably satisfy a given specification in the form of a polymorphic refinement type. We observe that such specifications are particularly suitable for program synthesis for two reasons. First, they offer a unique combination of expressive power and decidability, which enables automatic verification—and hence synthesis—of nontrivial programs. Second, a type-based specification for a program can often be effectively decomposed into independent specifications for its components, causing the synthesizer to consider fewer component combinations and leading to a combinatorial reduction in the size of the search space. At the core of our synthesis procedure is a newalgorithm for refinement type checking, which supports specification decomposition. We have evaluated our prototype implementation on a large set of synthesis problems and found that it exceeds the state of the art in terms of both scalability and usability. The tool was able to synthesize more complex programs than those reported in prior work (several sorting algorithms and operations on balanced search trees), as well as most of the benchmarks tackled by existing synthesizers, often starting from a more concise and intuitive user input. Nadia Polikarpova, Ivan Kuraj, Armando Solar-Lezama |
PLDI | 2 |
| 2015 | Programming with enumerable sets of structuresabstractWe present an efficient, modular, and feature-rich framework for automated generation and validation of complex structures, suitable for tasks that explore a large space of structured values. Our framework is capable of exhaustive, incremental, parallel, and memoized enumeration from not only finite but also infinite domains, while providing fine-grained control over the process. Furthermore, the framework efficiently supports the inverse of enumeration (checking whether a structure can be generated and fast-forwarding to this structure to continue the enumeration) and lazy enumeration (achieving exhaustive testing without generating all structures). The foundation of efficient enumeration lies in both direct access to encoded structures, achieved with well-known and new pairing functions, and dependent enumeration, which embeds constraints into the enumeration to avoid backtracking. Our framework defines an algebra of enumerators, with combinators for their composition that preserve exhaustiveness and efficiency. We have implemented our framework as a domain-specific language in Scala. Our experiments demonstrate better performance and shorter specifications by up to a few orders of magnitude compared to existing approaches. Ivan Kuraj, Viktor Kuncak, Daniel Jackson 0001 |
OOPSLA | 1 |
| 2013 | Synthesis modulo recursive functionsabstractWe describe techniques for synthesis and verification of recursive functional programs over unbounded domains. Our techniques build on top of an algorithm for satisfiability modulo recursive functions, a framework for deductive synthesis, and complete synthesis procedures for algebraic data types. We present new counterexample-guided algorithms for constructing verified programs. We have implemented these algorithms in an integrated environment for interactive verification and synthesis from relational specifications. Our system was able to synthesize a number of useful recursive functions that manipulate unbounded numbers and data structures. Etienne Kneuss, Ivan Kuraj, Viktor Kuncak, Philippe Suter |
OOPSLA | 2 |
| 2013 | Complete completion using types and weightsabstractDeveloping modern software typically involves composing functionality from existing libraries. This task is difficult because libraries may expose many methods to the developer. To help developers in such scenarios, we present a technique that synthesizes and suggests valid expressions of a given type at a given program point. As the basis of our technique we use type inhabitation for lambda calculus terms in long normal form. We introduce a succinct representation for type judgements that merges types into equivalence classes to reduce the search space, then reconstructs any desired number of solutions on demand. Furthermore, we introduce a method to rank solutions based on weights derived from a corpus of code. We implemented the algorithm and deployed it as a plugin for the Eclipse IDE for Scala. We show that the techniques we incorporated greatly increase the effectiveness of the approach. Our evaluation benchmarks are code examples from programming practice; we make them available for future comparisons. Tihomir Gvero, Viktor Kuncak, Ivan Kuraj, Ruzica Piskac |
PLDI | 3 |