Program sketching with live bidirectional evaluation

J Lubin, N Collins, C Omar, R Chugh - Proceedings of the ACM on …, 2020 - dl.acm.org
We present a system called Smyth for program sketching in a typed functional language
whereby the concrete evaluation of ordinary assertions gives rise to input-output examples …

Bidirectional evaluation with direct manipulation

M Mayer, V Kuncak, R Chugh - … of the ACM on Programming Languages, 2018 - dl.acm.org
We present an evaluation update (or simply, update) algorithm for a full-featured functional
programming language, which synthesizes program changes based on output changes …

KBX: Verified Model Synchronization via Formal Bidirectional Transformation

J Zhao, Y Zhao, P Yao, F Zeng, B Zhan… - ACM Transactions on …, 2024 - dl.acm.org
Complex safety-critical systems require multiple models for a comprehensive description,
resulting in error-prone development and laborious verification. Bidirectional transformation …

Embedding by Unembedding

K Matsuda, S Frohlich, M Wang, N Wu - Proceedings of the ACM on …, 2023 - dl.acm.org
Embedding is a language development technique that implements the object language as a
library in a host language. There are many advantages of the approach, including being …

Sparcl: a language for partially-invertible computation

K Matsuda, M Wang - Proceedings of the ACM on Programming …, 2020 - dl.acm.org
Invertibility is a fundamental concept in computer science, with various manifestations in
software development (serializer/deserializer, parser/printer, redo/undo, compressor …

Local consistency restoration methods for triple graph grammars

L Fritsche - 2022 - tuprints.ulb.tu-darmstadt.de
Modern software systems are becoming increasingly complex and are created by different
stakeholders that commit to one vision. Yet, these stakeholders differ in their requirements …

Synbit: synthesizing bidirectional programs using unidirectional sketches

M Yamaguchi, K Matsuda, C David… - Proceedings of the ACM on …, 2021 - dl.acm.org
We propose a technique for synthesizing bidirectional programs from the corresponding
unidirectional code plus a few input/output examples. The core ideas are:(1) constructing a …

Blockchain-based bidirectional updates on fine-grained medical data

C Li, Y Cao, Z Hu, M Yoshikawa - 2019 IEEE 35th International …, 2019 - ieeexplore.ieee.org
Electronic medical data sharing between stakeholders, such as patients, doctors, and
researchers, can promote more effective medical treatment collaboratively. These sensitive …

Reconciling Partial and Local Invertibility

A Ågren Thuné, K Matsuda, M Wang - European Symposium on …, 2024 - Springer
Invertible programming languages specify transformations to be run in two directions, such
as compression/decompression or encryption/decryption. Two key concepts in invertible …

Applicative bidirectional programming: Mixing lenses and semantic bidirectionalization

K Matsuda, M Wang - Journal of Functional Programming, 2018 - cambridge.org
A bidirectional transformation is a pair of map**s between source and view data objects,
one in each direction. When the view is modified, the source is updated accordingly with …