People | Locations | Statistics |
---|---|---|
Naji, M. |
| |
Motta, Antonella |
| |
Aletan, Dirar |
| |
Mohamed, Tarek |
| |
Ertürk, Emre |
| |
Taccardi, Nicola |
| |
Kononenko, Denys |
| |
Petrov, R. H. | Madrid |
|
Alshaaer, Mazen | Brussels |
|
Bih, L. |
| |
Casati, R. |
| |
Muller, Hermance |
| |
Kočí, Jan | Prague |
|
Šuljagić, Marija |
| |
Kalteremidou, Kalliopi-Artemi | Brussels |
|
Azam, Siraj |
| |
Ospanova, Alyiya |
| |
Blanpain, Bart |
| |
Ali, M. A. |
| |
Popa, V. |
| |
Rančić, M. |
| |
Ollier, Nadège |
| |
Azevedo, Nuno Monteiro |
| |
Landes, Michael |
| |
Rignanese, Gian-Marco |
|
Walker, David
University of Warwick
in Cooperation with on an Cooperation-Score of 37%
Topics
Publications (17/17 displayed)
- 2024Untangling free carrier and exciton dynamics in layered hybrid perovskites using ultrafast optical and terahertz spectroscopycitations
- 2023Untangling free carrier and exciton dynamics in layered hybrid perovskites using ultrafast optical and terahertz spectroscopycitations
- 2023Operando X-ray and Post-mortem Investigations of Electrochemical Degradation in Single-crystalline LiNi0.8Mn0.1Co0.1O2–Graphite pouch cellscitations
- 2023Tetragonal Kondo Insulator EuCd2Sb2 Discovered via High Pressure High Temperature Synthesiscitations
- 2023Quantifying electrochemical degradation in single-crystalline LiNi0.8Mn0.1Co0.1O2–graphite pouch cells through operando X-ray and post-mortem investigations
- 2023Data for Influence of co-reactants on surface passivation by nanoscale hafnium oxide layers grown by atomic layer deposition on siliconcitations
- 2023Hafnium oxide : a thin film dielectric with controllable etch resistance for semiconductor device fabricationcitations
- 2020Ambient and high pressure CuNiSb₂citations
- 2019Advanced steam measurement techniques: a study of how electrical capacitance measurements are affected by the spatial positioning of water within wet steam
- 2018MnFe0.5Ru0.5O3: An Above-Room-Temperature Antiferromagnetic Semiconductorcitations
- 2018Synthesizing bijective lensescitations
- 2018Cs1−xRbxSnI3 light harvesting semiconductors for perovskite photovoltaicscitations
- 2018Cs 1-: X Rb x SnI 3 light harvesting semiconductors for perovskite photovoltaicscitations
- 2015Thermal, compositional, and compressional demagnetization of cementitecitations
- 2015Structural, optical and vibrational properties of self-assembled Pbn+1(Ti1−xFex)nO3n+1−δ Ruddlesden-Popper superstructurescitations
- 2013Thin film LaYbO3 capacitive structures grown by pulsed laser depositioncitations
- 2001Synthesis and thermal decomposition of tetragonal RbClO4 and volume of fluid O2 from 2 to 9 GPacitations
Places of action
Organizations | Location | People |
---|
article
Synthesizing bijective lenses
Abstract
<jats:p>Bidirectional transformations between different data representations occur frequently in modern software systems. They appear as serializers and deserializers, as parsers and pretty printers, as database views and view updaters, and as a multitude of different kinds of ad hoc data converters. Manually building bidirectional transformations---by writing two separate functions that are intended to be inverses---is tedious and error prone. A better approach is to use a domain-specific language in which both directions can be written as a single expression. However, these domain-specific languages can be difficult to program in, requiring programmers to manage fiddly details while working in a complex type system.</jats:p><jats:p>We present an alternative approach. Instead of coding transformations manually, we synthesize them from declarative format descriptions and examples. Specifically, we present Optician, a tool for type-directed synthesis of bijective string transformers. The inputs to Optician are a pair of ordinary regular expressions representing two data formats and a few concrete examples for disambiguation. The output is a well-typed program in Boomerang (a bidirectional language based on the theory of lenses). The main technical challenge involves navigating the vast program search space efficiently. In particular, and unlike most prior work on type-directed synthesis, our system operates in the context of a language with a rich equivalence relation on types (the theory of regular expressions). Consequently, program synthesis requires search in two dimensions: First, our synthesis algorithm must find a pair of "syntactically compatible types," and second, using the structure of those types, it must find a type- and example-compliant term. Our key insight is that it is possible to reduce the size of this search space without losing any computational power by defining a new language of lenses designed specifically for synthesis. The new language is free from arbitrary function composition and operates only over types and terms in a new disjunctive normal form. We prove (1) our new language is just as powerful as a more natural, compositional, and declarative language and (2) our synthesis algorithm is sound and complete with respect to the new language. We also demonstrate empirically that our new language changes the synthesis problem from one that admits intractable solutions to one that admits highly efficient solutions, able to synthesize intricate lenses between complex file formats in seconds. We evaluate Optician on a benchmark suite of 39 examples that includes both microbenchmarks and realistic examples derived from other data management systems including Flash Fill, a tool for synthesizing string transformations in spreadsheets, and Augeas, a tool for bidirectional processing of Linux system configuration files.</jats:p>