VLDB 2026 Research / reviewers in the wild / expert
Mikaël Mayer
dblp:33/8166
· DBLP profile ↗
9ranked-venue papers
3as first author
0since 2021 · last 2018
0000-0002-6460-8731ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 7 · 2 first-authorArtificial intelligence and machine learning · 1Systems, architecture and hardware · 1Human-computer interaction and ubiquitous computing · 1 · 1 first-authorTheory of computation · 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
5 papers |
Program synthesis and code generation · 67% Programming languages and type systems · 30% Empirical software engineering · 3% | |
| Theoretical computer science
2 papers |
Automata and formal languages · 95% Automated reasoning and model checking · 5% | |
| Human-computer interaction and pervasive computing
1 paper |
Learning and educational technologies · 100% |
Topics — the 13 heaviest of 15, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program synthesis and code generation
programming by example |
0.4 | 2 | 2015 | User Interaction Models for Disambiguation in Programming by Example · UIST 2015 StriSynth: Synthesis for Live Programming · ICSE (2) 2015 |
Programming languages and type systems
functional programming |
0.3 | 1 | 2018 | Bidirectional evaluation with direct manipulation · Proc. ACM Program. Lang. 2018 |
Learning and educational technologies
active learning |
0.2 | 1 | 2015 | User Interaction Models for Disambiguation in Programming by Example · UIST 2015 |
Program synthesis and code generation › formal synthesis
functional synthesis |
0.2 | 2 | 2010 | Complete functional synthesis · PLDI 2010 Comfusy: A Tool for Complete Functional Synthesis · CAV 2010 |
Programming languages and type systems › programming environment
live programming |
0.2 | 1 | 2015 | StriSynth: Synthesis for Live Programming · ICSE (2) 2015 |
Program synthesis and code generation › programming by example
string transformation synthesis |
0.2 | 1 | 2015 | StriSynth: Synthesis for Live Programming · ICSE (2) 2015 |
Automata and formal languages › formal grammars
context-free grammar |
0.2 | 1 | 2015 | Automating grammar comparison · OOPSLA 2015 |
Automata and formal languages › grammar formalisms
formal grammar comparison |
0.2 | 1 | 2015 | Automating grammar comparison · OOPSLA 2015 |
Automata and formal languages › equivalence problem
grammar equivalence |
0.2 | 1 | 2015 | Automating grammar comparison · OOPSLA 2015 |
Computing education › programming education
programming language learning |
0.1 | 1 | 2015 | Automating grammar comparison · OOPSLA 2015 |
Empirical software engineering
end-user programming |
0.1 | 1 | 2015 | StriSynth: Synthesis for Live Programming · ICSE (2) 2015 |
Programming languages and type systems › language design
language extension |
0.0 | 1 | 2010 | Complete functional synthesis · PLDI 2010 |
Automated reasoning and model checking
satisfiability |
0.0 | 1 | 2010 | Comfusy: A Tool for Complete Functional Synthesis · CAV 2010 |
Methods — techniques the papers use, named apart from their topics
word and parse tree enumeration · 0.4user study · 0.4counterexample generation · 0.4active learning · 0.4lenses · 0.3direct manipulation · 0.3string transformation · 0.2example-based synthesis · 0.2decision procedures · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2018 | Bidirectional evaluation with direct manipulationabstractWe present an evaluation update (or simply, update) algorithm for a full-featured functional programming language, which synthesizes program changes based on output changes. Intuitively, the update algorithm retraces the steps of the original evaluation, rewriting the program as needed to reconcile differences between the original and updated output values. Our approach, furthermore, allows expert users to define custom lenses that augment the update algorithm with more advanced or domain-specific program updates. To demonstrate the utility of evaluation update, we implement the algorithm in Sketch-n-Sketch, a novel direct manipulation programming system for generating HTML documents. In Sketch-n-Sketch, the user writes an ML-style functional program to generate HTML output. When the user directly manipulates the output using a graphical user interface, the update algorithm reconciles the changes. We evaluate bidirectional evaluation in Sketch-n-Sketch by authoring ten examples comprising approximately 1400 lines of code in total. These examples demonstrate how a variety of HTML documents and applications can be developed and edited interactively in Sketch-n-Sketch, mitigating the tedious edit-run-view cycle in traditional programming environments. Mikaël Mayer, Viktor Kuncak, Ravi Chugh |
Proc. ACM Program. Lang. | 1 |
| 2017 | Proactive Synthesis of Recursive Tree-to-String Functions from ExamplesabstractSynthesis from examples enables non-expert users to generate programs by specifying examples of their behavior. A domain-specific form of such synthesis has been recently deployed in a widely used spreadsheet software product. In this paper we contribute to foundations of such techniques and present a complete algorithm for synthesis of a class of recursive functions defined by structural recursion over a given algebraic data type definition. The functions we consider map an algebraic data type to a string; they are useful for, e.g., pretty printing and serialization of programs and data. We formalize our problem as learning deterministic sequential top-down tree-to-string transducers with a single state (1STS). The first problem we consider is learning a tree-to-string transducer from any set of input/output examples provided by the user. We show that, given a set of input/output examples, checking whether there exists a 1STS consistent with these examples is NP-complete in general. In contrast, the problem can be solved in polynomial time under a (practically useful) closure condition that each subtree of a tree in the input/output example set is also part of the input/output examples. Because coming up with relevant input/output examples may be difficult for the user while creating hard constraint problems for the synthesizer, we also study a more automated active learning scenario in which the algorithm chooses the inputs for which the user provides the outputs. Our algorithm asks a worst-case linear number of queries as a function of the size of the algebraic data type definition to determine a unique transducer. To construct our algorithms we present two new results on formal languages. First, we define a class of word equations, called sequential word equations, for which we prove that satisfiability can be solved in deterministic polynomial time. This is in contrast to the general word equations for which the best known complexity upper bound is in linear space. Second, we close a long-standing open problem about the asymptotic size of test sets for context-free languages. A test set of a language of words L is a subset T of L such that any two word homomorphisms equivalent on T are also equivalent on L. We prove that it is possible to build test sets of cubic size for context-free languages, matching for the first time the lower bound found 20 years ago. Mikaël Mayer, Jad Hamza, Viktor Kuncak |
ECOOP | 1 |
| 2015 | StriSynth: Synthesis for Live ProgrammingabstractMotivated by applications in automating repetitive file manipulations, we present a tool called StriSynth, which allows end-users to perform transformations over data using examples. Based on provided examples, our tool automaticallygenerates scripts for non-trivial file manipulations. Although the current focus of StriSynth are file manipulations, it implements a more general string transformation framework. This framework builds on and further extends the functionality of Flash Fill -- a Microsoft Excel extension for string transformations. An accompanying video to this paper is available at the following website http://youtu.be/kkDZphqIdFM. Sumit Gulwani, Mikaël Mayer, Filip Niksic, Ruzica Piskac |
ICSE (2) | 2 |
| 2015 | Automating grammar comparisonabstractWe consider from a practical perspective the problem of checking equivalence of context-free grammars. We present techniques for proving equivalence, as well as techniques for finding counter-examples that establish non-equivalence. Among the key building blocks of our approach is a novel algorithm for efficiently enumerating and sampling words and parse trees from arbitrary context-free grammars; the algorithm supports polynomial time random access to words belonging to the grammar. Furthermore, we propose an algorithm for proving equivalence of context-free grammars that is complete for LL grammars, yet can be invoked on any context-free grammar, including ambiguous grammars. Our techniques successfully find discrepancies between different syntax specifications of several real-world languages, and are capable of detecting fine-grained incremental modifications performed on grammars. Our evaluation shows that our tool improves significantly on the existing available state of the art tools. In addition, we used these algorithms to develop an online tutoring system for grammars that we then used in an undergraduate course on computer language processing. On questions involving grammar constructions, our system was able to automatically evaluate the correctness of 95% of the solutions submitted by students: it disproved 74% of cases and proved 21% of them. Ravichandhran Madhavan, Mikaël Mayer, Sumit Gulwani, Viktor Kuncak |
OOPSLA | 2 |
| 2015 | User Interaction Models for Disambiguation in Programming by ExampleabstractProgramming by Examples (PBE) has the potential to revolutionize end-user programming by enabling end users, most of whom are non-programmers, to create small scripts for automating repetitive tasks. However, examples, though often easy to provide, are an ambiguous specification of the user's intent. Because of that, a key impedance in adoption of PBE systems is the lack of user confidence in the correctness of the program that was synthesized by the system. We present two novel user interaction models that communicate actionable information to the user to help resolve ambiguity in the examples. One of these models allows the user to effectively navigate between the huge set of programs that are consistent with the examples provided by the user. The other model uses active learning to ask directed example-based questions to the user on the test input data over which the user intends to run the synthesized program. Our user studies show that each of these models significantly reduces the number of errors in the performed task without any difference in completion time. Moreover, both models are perceived as useful, and the proactive active-learning based model has a slightly higher preference regarding the users' confidence in the result. Mikaël Mayer, Gustavo Soares, Maxim Grechkin, Vu Le 0002, Mark Marron, Oleksandr Polozov, Rishabh Singh, Benjamin G. Zorn, Sumit Gulwani |
UIST | 1 |
| 2013 | Functional synthesis for linear arithmetic and sets
Viktor Kuncak, Mikaël Mayer, Ruzica Piskac, Philippe Suter |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2010 | Comfusy: A Tool for Complete Functional Synthesis
Viktor Kuncak, Mikaël Mayer, Ruzica Piskac, Philippe Suter |
CAV | 2 |
| 2010 | Roombots - Towards decentralized reconfiguration with self-reconfiguring modular robotic metamodulesabstractThis paper presents our work towards a decentralized reconfiguration strategy for self-reconfiguring modular robots, assembling furniture-like structures from Roombots (RB) metamodules. We explore how reconfiguration by locomotion from a configuration A to a configuration B can be controlled in a distributed fashion. This is done using Roombots metamodules-two Roombots modules connected serially-that use broadcast signals, lookup tables of their movement space, assumptions about their neighborhood, and connections to a structured surface to collectively build desired structures without the need of a centralized planner. Alexander Badri-Spröwitz, Philippe Laprade, Stéphane Bonardi, Mikaël Mayer, Rico Moeckel, Pierre-André Mudry, Auke Jan Ijspeert |
IROS | 4 |
| 2010 | Complete functional synthesisabstractSynthesis of program fragments from specifications can make programs easier to write and easier to reason about. To integrate synthesis into programming languages, synthesis algorithms should behave in a predictable way - they should succeed for a well-defined class of specifications. They should also support unbounded data types such as numbers and data structures. We propose to generalize decision procedures into predictable and complete synthesis procedures. Such procedures are guaranteed to find code that satisfies the specification if such code exists. Moreover, we identify conditions under which synthesis will statically decide whether the solution is guaranteed to exist, and whether it is unique. We demonstrate our approach by starting from decision procedures for linear arithmetic and data structures and transforming them into synthesis procedures. We establish results on the size and the efficiency of the synthesized code. We show that such procedures are useful as a language extension with implicit value definitions, and we show how to extend a compiler to support such definitions. Our constructs provide the benefits of synthesis to programmers, without requiring them to learn new concepts or give up a deterministic execution model. Viktor Kuncak, Mikaël Mayer, Ruzica Piskac, Philippe Suter |
PLDI | 2 |