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.

Mikaël Mayer

dblp:33/8166 · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Program synthesis and code generation
programming by example
0.422015
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.312018
Bidirectional evaluation with direct manipulation · Proc. ACM Program. Lang. 2018
Learning and educational technologies
active learning
0.212015
User Interaction Models for Disambiguation in Programming by Example · UIST 2015
Program synthesis and code generation › formal synthesis
functional synthesis
0.222010
Complete functional synthesis · PLDI 2010
Comfusy: A Tool for Complete Functional Synthesis · CAV 2010
Programming languages and type systems › programming environment
live programming
0.212015
StriSynth: Synthesis for Live Programming · ICSE (2) 2015
Program synthesis and code generation › programming by example
string transformation synthesis
0.212015
StriSynth: Synthesis for Live Programming · ICSE (2) 2015
Automata and formal languages › formal grammars
context-free grammar
0.212015
Automating grammar comparison · OOPSLA 2015
Automata and formal languages › grammar formalisms
formal grammar comparison
0.212015
Automating grammar comparison · OOPSLA 2015
Automata and formal languages › equivalence problem
grammar equivalence
0.212015
Automating grammar comparison · OOPSLA 2015
Computing education › programming education
programming language learning
0.112015
Automating grammar comparison · OOPSLA 2015
Empirical software engineering
end-user programming
0.112015
StriSynth: Synthesis for Live Programming · ICSE (2) 2015
Programming languages and type systems › language design
language extension
0.012010
Complete functional synthesis · PLDI 2010
Automated reasoning and model checking
satisfiability
0.012010
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
YearPublicationVenuePosition
2018 Bidirectional evaluation with direct manipulation
abstract
We 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 Examples
abstract
Synthesis 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
ECOOP1
2015 StriSynth: Synthesis for Live Programming
abstract
Motivated 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 comparison
abstract
We 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
OOPSLA2
2015 User Interaction Models for Disambiguation in Programming by Example
abstract
Programming 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
UIST1
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
CAV2
2010 Roombots - Towards decentralized reconfiguration with self-reconfiguring modular robotic metamodules
abstract
This 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
IROS4
2010 Complete functional synthesis
abstract
Synthesis 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
PLDI2