Demo Data from VLDB 2026 / reviewers in the wild / expert
Thomas Dillig
dblp:26/6661
· DBLP profile ↗
23ranked-venue papers
1as first author
0since 2021 · last 2017
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 22 · 1 first-authorTheory of computation · 6 · 1 first-author
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
10 papers |
Program verification · 38% Program analysis · 28% Program synthesis and code generation · 17% | |
| Databases, data mining, and information retrieval
2 papers |
Query processing and optimization · 89% Data stream processing · 11% | |
| Theoretical computer science
3 papers |
Automated reasoning and model checking · 48% Logic in computer science · 33% Mathematical optimization · 19% |
Topics — the 21 heaviest of 27, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program verification › invariant generation
loop invariant generation |
0.3 | 2 | 2013 | Inductive invariant generation via abductive inference · OOPSLA 2013 Simplifying Loop Invariant Generation Using Splitter Predicates · CAV 2011 |
Program synthesis and code generation › DSL-based synthesis
query synthesis |
0.3 | 1 | 2017 | SQLizer: query synthesis from natural language · Proc. ACM Program. Lang. 2017 |
Program analysis
static analysis |
0.3 | 3 | 2011 | Precise reasoning for programs using containers · POPL 2011 Symbolic heap abstraction with demand-driven axiomatization of memory invariants · OOPSLA 2010 Simplifying Loop Invariant Generation Using Splitter Predicates · CAV 2011 |
Automated reasoning and model checking
satisfiability modulo theories |
0.2 | 2 | 2012 | Minimum Satisfying Assignments for SMT · CAV 2012 Cuts from Proofs: A Complete and Practical Technique for Solving Linear Inequalities over Integers · CAV 2009 |
Query processing and optimization › query optimization
user-defined function optimization |
0.2 | 1 | 2014 | Consolidation of queries with user-defined functions · PLDI 2014 |
Program verification › program logic
hoare logic |
0.2 | 1 | 2013 | Inductive invariant generation via abductive inference · OOPSLA 2013 |
Program verification › deductive verification
verification condition generation |
0.2 | 1 | 2013 | Inductive invariant generation via abductive inference · OOPSLA 2013 |
Program verification
abductive inference |
0.1 | 1 | 2012 | Automated error diagnosis using abductive inference · PLDI 2012 |
Debugging and program repair
error diagnosis |
0.1 | 1 | 2012 | Automated error diagnosis using abductive inference · PLDI 2012 |
Debugging and program repair
fault localization |
0.1 | 1 | 2012 | Automated error diagnosis using abductive inference · PLDI 2012 |
Program analysis
heap analysis |
0.1 | 1 | 2011 | Precise and compact modular procedure summaries for heap manipulating programs · PLDI 2011 |
Programming languages and type systems
heap-manipulating programs |
0.1 | 1 | 2011 | Precise and compact modular procedure summaries for heap manipulating programs · PLDI 2011 |
Program analysis › static analysis › vulnerability detection
buffer overflow detection |
0.1 | 1 | 2010 | Symbolic heap abstraction with demand-driven axiomatization of memory invariants · OOPSLA 2010 |
Program analysis › heap analysis
heap abstraction |
0.1 | 1 | 2010 | Symbolic heap abstraction with demand-driven axiomatization of memory invariants · OOPSLA 2010 |
Program verification › security property verification
memory safety verification |
0.1 | 1 | 2010 | Symbolic heap abstraction with demand-driven axiomatization of memory invariants · OOPSLA 2010 |
Mathematical optimization
integer programming |
0.1 | 1 | 2009 | Cuts from Proofs: A Complete and Practical Technique for Solving Linear Inequalities over Integers · CAV 2009 |
Natural language and speech › Information extraction and text analysis
semantic parsing |
0.1 | 1 | 2017 | SQLizer: query synthesis from natural language · Proc. ACM Program. Lang. 2017 |
Program analysis › data flow analysis
path-sensitive analysis |
0.1 | 1 | 2008 | Sound, complete and scalable path-sensitive analysis · PLDI 2008 |
Data stream processing
streaming analytics |
0.1 | 1 | 2014 | Consolidation of queries with user-defined functions · PLDI 2014 |
Programming languages and type systems › language-based security
memory safety |
0.1 | 1 | 2014 | Optimal Guard Synthesis for Memory Safety · CAV 2014 |
Program analysis › static analysis › abstract interpretation
relational analysis |
0.0 | 1 | 2010 | Symbolic heap abstraction with demand-driven axiomatization of memory invariants · OOPSLA 2010 |
Methods — techniques the papers use, named apart from their topics
type-directed program synthesis · 0.9probabilistic type inhabitation · 0.9automated program repair · 0.9abductive inference · 0.3quantifier elimination · 0.3SMT-based symbolic analysis · 0.2backtracking search · 0.2user study · 0.1strong updates · 0.1bottom-up summary-based analysis · 0.1abstract interpretation · 0.1proof-based cut generation · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2017 | SQLizer: query synthesis from natural languageabstractThis paper presents a new technique for automatically synthesizing SQL queries from natural language (NL). At the core of our technique is a new NL-based program synthesis methodology that combines semantic parsing techniques from the NLP community with type-directed program synthesis and automated program repair. Starting with a program sketch obtained using standard parsing techniques, our approach involves an iterative refinement loop that alternates between probabilistic type inhabitation and automated sketch repair. We use the proposed idea to build an end-to-end system called SQLIZER that can synthesize SQL queries from natural language. Our method is fully automated, works for any database without requiring additional customization, and does not require users to know the underlying database schema. We evaluate our approach on over 450 natural language queries concerning three different databases, namely MAS, IMDB, and YELP. Our experiments show that the desired query is ranked within the top 5 candidates in close to 90% of the cases and that SQLIZER outperforms NALIR, a state-of-the-art tool that won a best paper award at VLDB'14. Navid Yaghmazadeh, Yuepeng Wang 0001, Isil Dillig, Thomas Dillig |
Proc. ACM Program. Lang. | 4 |
| 2017 | Synthesis of circular compositional program proofs via abduction
Isil Dillig, Thomas Dillig, Boyang Li 0002, Kenneth L. McMillan, Shmuel Sagiv |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2015 | Bottom-Up Context-Sensitive Pointer Analysis for Java
Yu Feng 0001, Xinyu Wang 0006, Isil Dillig, Thomas Dillig |
APLAS | 4 |
| 2014 | Optimal Guard Synthesis for Memory Safety
Thomas Dillig, Isil Dillig, Swarat Chaudhuri |
CAV | 1 |
| 2014 | Consolidation of queries with user-defined functionsabstractMotivated by streaming and data analytics scenarios where many queries operate on the same data and perform similar computations, we propose program consolidation for merging multiple user-defined functions (UDFs) that operate on the same input. Program consolidation exploits common computations between UDFs to generate an equivalent optimized function whose execution cost is often much smaller (and never greater) than the sum of the costs of executing each function individually. We present a sound consolidation calculus and an effective algorithm for consolidating multiple UDFs. Our approach is purely static and uses symbolic SMT-based techniques to identify shared or redundant computations. We have implemented the proposed technique on top of the Naiad data processing system. Our experiments show that our algorithm dramatically improves overall job completion time when executing user-defined filters that operate on the same data and perform similar computations. Marcelo Sousa, Isil Dillig, Dimitrios Vytiniotis, Thomas Dillig, Christos Gkantsidis |
PLDI | 4 |
| 2013 | Automated Inference of Library Specifications for Source-Sink Property Verification
Haiyan Zhu, Thomas Dillig, Isil Dillig |
APLAS | 2 |
| 2013 | Explain: A Tool for Performing Abductive Inference
Isil Dillig, Thomas Dillig |
CAV | 2 |
| 2013 | Inductive invariant generation via abductive inferenceabstractThis paper presents a new method for generating inductive loop invariants that are expressible as boolean combinations of linear integer constraints. The key idea underlying our technique is to perform a backtracking search that combines Hoare-style verification condition generation with a logical abduction procedure based on quantifier elimination to speculate candidate invariants. Starting with true, our method iteratively strengthens loop invariants until they are inductive and strong enough to verify the program. A key feature of our technique is that it is lazy: It only infers those invariants that are necessary for verifying program correctness. Furthermore, our technique can infer arbitrary boolean combinations (including disjunctions) of linear invariants. We have implemented the proposed approach in a tool called HOLA. Our experiments demonstrate that HOLA can infer interesting invariants that are beyond the reach of existing state-of-the-art invariant generation tools. Isil Dillig, Thomas Dillig, Boyang Li 0002, Kenneth L. McMillan |
OOPSLA | 2 |
| 2013 | Synthesis of Circular Compositional Program Proofs via Abduction
Boyang Li 0002, Isil Dillig, Thomas Dillig, Kenneth L. McMillan, Shmuel Sagiv |
TACAS | 3 |
| 2012 | Minimum Satisfying Assignments for SMT
Isil Dillig, Thomas Dillig, Kenneth L. McMillan, Alex Aiken |
CAV | 2 |
| 2012 | Automated error diagnosis using abductive inferenceabstractWhen program verification tools fail to verify a program, either the program is buggy or the report is a false alarm. In this situation, the burden is on the user to manually classify the report, but this task is time-consuming, error-prone, and does not utilize facts already proven by the analysis. We present a new technique for assisting users in classifying error reports. Our technique computes small, relevant queries presented to a user that capture exactly the information the analysis is missing to either discharge or validate the error. Our insight is that identifying these missing facts is an instance of the abductive inference problem in logic, and we present a new algorithm for computing the smallest and most general abductions in this setting. We perform the first user study to rigorously evaluate the accuracy and effort involved in manual classification of error reports. Our study demonstrates that our new technique is very useful for improving both the speed and accuracy of error report classification. Specifically, our approach improves classification accuracy from 33% to 90% and reduces the time programmers take to classify error reports from approximately 5 minutes to under 1 minute. Isil Dillig, Thomas Dillig, Alex Aiken |
PLDI | 2 |
| 2011 | Simplifying Loop Invariant Generation Using Splitter Predicates
Rahul Sharma 0001, Isil Dillig, Thomas Dillig, Alex Aiken |
CAV | 3 |
| 2011 | Precise and compact modular procedure summaries for heap manipulating programsabstractWe present a strictly bottom-up, summary-based, and precise heap analysis targeted for program verification that performs strong updates to heap locations at call sites. We first present a theory of heap decompositions that forms the basis of our approach; we then describe a full analysis algorithm that is fully symbolic and efficient. We demonstrate the precision and scalability of our approach for verification of real C and C++ programs. Isil Dillig, Thomas Dillig, Alex Aiken, Shmuel Sagiv |
PLDI | 2 |
| 2011 | Precise reasoning for programs using containersabstractContainers are general-purpose data structures that provide functionality for inserting, reading, removing, and iterating over elements. Since many applications written in modern programming languages, such as C++ and Java, use containers as standard building blocks, precise analysis of many programs requires a fairly sophisticated understanding of container contents. In this paper, we present a sound, precise, and fully automatic technique for static reasoning about contents of containers. We show that the proposed technique adds useful precision for verifying real C++ applications and that it scales to applications with over 100,000 lines of code. Isil Dillig, Thomas Dillig, Alex Aiken |
POPL | 2 |
| 2011 | Cuts from proofs: a complete and practical technique for solving linear inequalities over integers
Isil Dillig, Thomas Dillig, Alex Aiken |
Formal Methods Syst. Des. | 2 |
| 2010 | Fluid Updates: Beyond Strong vs. Weak Updates
Isil Dillig, Thomas Dillig, Alex Aiken |
ESOP | 2 |
| 2010 | Symbolic heap abstraction with demand-driven axiomatization of memory invariantsabstractMany relational static analysis techniques for precise reasoning about heap contents perform an explicit case analysis of all possible heaps that can arise. We argue that such precise relational reasoning can be obtained in a more scalable and economical way by enforcing the memory invariant that every concrete memory location stores one unique value directly on the heap abstraction. Our technique combines the strengths of analyses for precise reasoning about heap contents with approaches that prioritize axiomatization of memory invariants, such as the theory of arrays. Furthermore, by avoiding an explicit case analysis, our technique is scalable and powerful enough to analyze real-world programs with intricate use of arrays and pointers; in particular, we verify the absence of buffer overruns, incorrect casts, and null pointer dereferences in OpenSSH (over 26,000 lines of code) after fixing 4 previously undiscovered bugs found by our system. Our experiments also show that the combination of reasoning about heap contents and enforcing existence and uniqueness invariants is crucial for this level of precision. Copyright © 2010 ACM. Isil Dillig, Thomas Dillig, Alex Aiken |
OOPSLA | 2 |
| 2010 | Small Formulas for Large Programs: On-Line Constraint Simplification in Scalable Static Analysis
Isil Dillig, Thomas Dillig, Alex Aiken |
SAS | 2 |
| 2009 | Cuts from Proofs: A Complete and Practical Technique for Solving Linear Inequalities over Integers
Isil Dillig, Thomas Dillig, Alex Aiken |
CAV | 2 |
| 2008 | The CLOSER: automating resource management in javaabstractWhile automatic garbage collection has relieved programmers from manual memory management in Java-like languages, managing resources remains a considerable burden and a source of performance problems. In this paper, we present a novel technique for automatic resource management based on static approximation of resource lifetimes. Our source-to-source transformation tool, CLOSER, automatically transforms program code to guarantee that resources are properly disposed and handles arbitrary resource usage patterns. CLOSER generates code for directly disposing any resource whose lifetime can be statically determined; when this is not possible, CLOSER inserts conditional disposal code based on interest-reference counts that identify when the resource can be safely disposed. The programmer is only required to identify which types should be treated as resources, and what method to invoke to dispose each such resource. We successfully applied CLOSER on a moderate-sized graphics application that requires complex reasoning for resource management. Isil Dillig, Thomas Dillig, Eran Yahav, Satish Chandra 0001 |
ISMM | 2 |
| 2008 | Sound, complete and scalable path-sensitive analysisabstractWe present a new, precise technique for fully path- and context-sensitive program analysis. Our technique exploits two observations: First, using quantified, recursive formulas, path- and context-sensitive conditions for many program properties can be expressed exactly. To compute a closed form solution to such recursive constraints, we differentiate between observable and unobservable variables, the latter of which are existentially quantified in our approach. Using the insight that unobservable variables can be eliminated outside a certain scope, our technique computes satisfiability- and validity-preserving closed-form solutions to the original recursive constraints. We prove the solution is as precise as the original system for answering may and must queries as well as being small in practice, allowing our technique to scale to the entire Linux kernel, a program with over 6 million lines of code. Isil Dillig, Thomas Dillig, Alex Aiken |
PLDI | 2 |
| 2007 | An overview of the saturn projectabstractWe present an overview of the Saturn program analysis system, including a rationale for three major design decisions: the use of function-at-a-time, or summary-based, analysis, the use of constraints, and the use of a logic programming language to express program analysis algorithms. We argue that the combination of summaries and constraints allows Saturn to achieve both great scalability and great precision, while the use of a logic programming language with constraints allows for succinct, high-level expression of program analyses. Alex Aiken, Suhabe Bugrara, Isil Dillig, Thomas Dillig, Brian Hackett, Peter Hawkins |
PASTE | 4 |
| 2007 | Static error detection using semantic inconsistency inferenceabstractInconsistency checking is a method for detecting software errors that relies only on examining multiple uses of a value. We propose that inconsistency inference is best understood as a variant of the older and better understood problem of type inference. Using this insight, we describe a precise and formal framework for discovering inconsistency errors. Unlike previous approaches to the problem, our technique for finding inconsistency errors is purely semantic and can deal with complex aliasing and path-sensitive conditions. We have built a nullde reference analysis of C programs based on semantic inconsistency inference and have used it to find hundreds of previously unknown null dereference errors in widely used C programs. Isil Dillig, Thomas Dillig, Alex Aiken |
PLDI | 2 |