Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Jonathan Mendelson

dblp:131/8299 · DBLP profile ↗
← Back
3ranked-venue papers
1as first author
2since 2021 · last 2021
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Artificial intelligence and machine learning · 1 · 1 first-author · 1 since 2021Software engineering, systems software and programming languages · 1Graphics, computer vision, multimedia, augmented reality and games · 1 · 1 first-author · 1 since 2021Human-computer interaction and ubiquitous computing · 1 · 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.

Software engineering, system software, and programming languages
3 papers
Program synthesis and code generation · 65% Empirical software engineering · 17% Program analysis · 17%
Databases, data mining, and information retrieval
1 paper
Query processing and optimization · 100%
Theoretical computer science
1 paper
Logic in computer science · 100%

Topics — the 6 heaviest of 8, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program synthesis and code generation › inductive logic programming
datalog program synthesis
0.922021
GENSYNTH: Synthesizing Datalog Programs without Language Bias · AAAI 2021
Provenance-guided synthesis of Datalog programs · Proc. ACM Program. Lang. 2020
Empirical software engineering › mining software repositories › source-code mining
code pattern mining
0.512021
Sporq: An Interactive Environment for Exploring Code using Query-by-Example · UIST 2021
Program synthesis and code generation
inductive logic programming
0.512021
GENSYNTH: Synthesizing Datalog Programs without Language Bias · AAAI 2021
Program analysis
static analysis
0.512021
Sporq: An Interactive Environment for Exploring Code using Query-by-Example · UIST 2021
Program synthesis and code generation
inductive program synthesis
0.412020
Provenance-guided synthesis of Datalog programs · Proc. ACM Program. Lang. 2020
Logic in computer science › logic programming
datalog
0.112020
Provenance-guided synthesis of Datalog programs · Proc. ACM Program. Lang. 2020

Methods — techniques the papers use, named apart from their topics

provenance · 1.3SAT solving · 1.3CEGIS · 1.3relational program representation · 0.5query synthesis from examples · 0.5evolutionary search · 0.5datalog interpreter · 0.5
YearPublicationVenuePosition
2021 GENSYNTH: Synthesizing Datalog Programs without Language Bias
abstract
Techniques for learning logic programs from data typically rely on language bias mechanisms to restrict the hypothesis space. These methods are therefore limited by the user's ability to tune them such that the hypothesis space is simultaneously large enough to include the target program but small enough to admit a tractable search. We propose a technique to learn Datalog programs from input-output examples without requiring the user to specify any language bias. It employs an evolutionary search strategy that mutates candidate programs and evaluates their fitness on the examples using an off-the-shelf Datalog interpreter. We have implemented our approach in a tool called GenSynth and evaluate it on diverse tasks from knowledge discovery, program analysis, and relational queries. Our experiments show that GenSynth can learn correct programs from few examples, including for tasks that require recursion and invented predicates, and is robust to noise.
Jonathan Mendelson, Aaditya Naik, Mukund Raghothaman, Mayur Naik
AAAI1
2021 Sporq: An Interactive Environment for Exploring Code using Query-by-Example
abstract
There has been widespread adoption of IDEs and powerful tools for program analysis. However, programmers still find it difficult to conveniently analyze their code for custom patterns. Such systems either provide inflexible interfaces or require knowledge of complex query languages and compiler internals. In this paper, we present Sporq, a tool that allows developers to mine their codebases for a range of patterns, including bugs, code smells, and violations of coding standards. Sporq offers an interactive environment in which the user highlights program elements, and the system responds by identifying other parts of the codebase with similar patterns. The programmer can then provide feedback which enables the system to rapidly infer the programmer’s intent. Internally, our system is driven by high-fidelity relational program representations and algorithms to synthesize database queries from examples. Our experiments and user studies with a VS Code extension indicate that Sporq reduces the effort needed by programmers to write custom analyses and discover bugs in large codebases.
Aaditya Naik, Jonathan Mendelson, Nathaniel Sands, Yuepeng Wang 0001, Mayur Naik, Mukund Raghothaman
UIST2
2020 Provenance-guided synthesis of Datalog programs
abstract
We propose a new approach to synthesize Datalog programs from input-output specifications. Our approach leverages query provenance to scale the counterexample-guided inductive synthesis (CEGIS) procedure for program synthesis. In each iteration of the procedure, a SAT solver proposes a candidate Datalog program, and a Datalog solver evaluates the proposed program to determine whether it meets the desired specification. Failure to satisfy the specification results in additional constraints to the SAT solver. We propose efficient algorithms to learn these constraints based on “ why ” and “ why not ” provenance information obtained from the Datalog solver. We have implemented our approach in a tool called ProSynth and present experimental results that demonstrate significant improvements over the state-of-the-art, including in synthesizing invented predicates, reducing running times, and in decreasing variances in synthesis performance. On a suite of 40 synthesis tasks from three different domains, ProSynth is able to synthesize the desired program in 10 seconds on average per task—an order of magnitude faster than baseline approaches—and takes only under a second each for 28 of them.
Mukund Raghothaman, Jonathan Mendelson, David Zhao 0001, Mayur Naik, Bernhard Scholz
Proc. ACM Program. Lang.2