Embedding invertible languages with binders: A case of the FliPpr language

Kazutaka Matsuda, Meng Wang

Research output: Chapter in Book/Report/Conference proceedingChapterpeer-review

1 Citation (Scopus)

Abstract

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.

Original languageEnglish
Title of host publicationACM SIGPLAN Notices
PublisherAssociation for Computing Machinery
Pages158-171
Number of pages14
Volume53
Edition7
ISBN (Electronic)9781450349116
DOIs
Publication statusPublished - 2018 Sept 17

Keywords

  • EDSL
  • Parsing
  • Pretty-Printing
  • Program Inversion

Fingerprint

Dive into the research topics of 'Embedding invertible languages with binders: A case of the FliPpr language'. Together they form a unique fingerprint.

Cite this