-
Chapter and Conference Paper
Reconciling Partial and Local Invertibility
Invertible programming languages specify transformations to be run in two directions, such as compression/decompression or encryption/decryption. Two key concepts in invertible programming languages are partial i...
-
Chapter and Conference Paper
Modular Inference of Linear Types for Multiplicity-Annotated Arrows
Bernardy et al. [2018] proposed a linear type system \(\lambda ^q_\rightarrow \) λ ...
-
Chapter and Conference Paper
HOBiT: Programming Lenses Without Using Lens Combinators
We propose HOBiT, a higher-order bidirectional programming language, in which users can write bidirectional programs in the familiar style of conventional functional programming, while enjoying the full expres...
-
Chapter and Conference Paper
FliPpr: A Prettier Invertible Printing System
When implementing a programming language, we often write a parser and a pretty-printer. However, manually writing both programs is not only tedious but also error-prone; it may happen that a pretty-printed res...
-
Chapter and Conference Paper
A Grammar-Based Approach to Invertible Programs
Program inversion has many applications such as in the implementation of serialization/deserialization and in providing support for redo/undo, and has been studied by many researchers. However, little attentio...