Embedding Invertible Languages with Binders: A Case of the FliPpr Language
This paper describes a new embedding technique of invertible
programming languages, through the case of the FliPpr language.
Embedded languages have the advantage of inheriting host languages'
features and supports; and one of the influential methods of embedding
is the tagless-final style, which enables a high level of
programmability and extensibility. However, it is not straightforward
to apply the method to the family of
invertible/reversible/bidirectional languages, due to the different
ways functions in such domains are represented. We consider FliPpr,
an invertible pretty-printing system, as a representative of such
languages, and show that Atkey et al.'s unembedding technique can be
used to address the problem. Together with a reformulation of FliPpr,
our embedding achieves a high level of interoperability with the host
language Haskell, which is not found in any other invertible
languages. We implement the idea and demonstrate the benefits of the
approach with examples.
Thu 27 SepDisplayed time zone: Guadalajara, Mexico City, Monterrey change
13:30 - 15:00
|Rhine: FRP with Type-Level Clocks|
|A High-Performance Multicore IO Manager Based on libuv (Experience Report)|
|Embedding Invertible Languages with Binders: A Case of the FliPpr Language|