Proceedings of the 11th ACM SIGPLAN International Symposium on Haskell 2018
DOI: 10.1145/3242744.3242758
|View full text |Cite
|
Sign up to set email alerts
|

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

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 … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
7
0

Year Published

2019
2019
2024
2024

Publication Types

Select...
4
1

Relationship

3
2

Authors

Journals

citations
Cited by 5 publications
(7 citation statements)
references
References 37 publications
(69 reference statements)
0
7
0
Order By: Relevance
“…Currently, our prototype implementation is standalone, preventing users from writing functions in another language to be used in lift, and from using functions obtain by fwd and bwd in the other language. Although prototypical implementation of a compiler of Sparcl to Haskell is in progress, a seamless integration through an embedded implementation would be desirable [Matsuda and Wang 2018b]. Another direction is to extend our approach to bidirectional transformations [Foster et al 2007] to create the notion of partially bidirectional programming.…”
Section: Resultsmentioning
confidence: 99%
“…Currently, our prototype implementation is standalone, preventing users from writing functions in another language to be used in lift, and from using functions obtain by fwd and bwd in the other language. Although prototypical implementation of a compiler of Sparcl to Haskell is in progress, a seamless integration through an embedded implementation would be desirable [Matsuda and Wang 2018b]. Another direction is to extend our approach to bidirectional transformations [Foster et al 2007] to create the notion of partially bidirectional programming.…”
Section: Resultsmentioning
confidence: 99%
“…In contrast, our approach reuses the standard type class hierarchy, further extending the expressive power of bidirectional programming in Haskell. FliPpr [17,19] is an invertible language that generates a parser from a definition of a pretty printer. In this paper, our biparser definitions are more similar to those of parsers than printers.…”
Section: Discussion and Related Workmentioning
confidence: 99%
“…Writing parsers and printers by hand is often tedious due to the redundancy implied by their inverse-like relation. Thus, various approaches have been proposed for reducing the effort of writing parsers/printers by generating both from a common definition [30,17,19].…”
Section: Further Examples Of Bxmentioning
confidence: 99%
“…Much research has been devoted to describing parsers and printers in a single program. For example, both Rendel and Ostermann [44] and Matsuda and Wang [36,37] adopt a combinator-based approach 10 (whereas we use a generator-based approach), where small components are glued together to yield more sophisticated behaviour, and can guarantee properties similar to Theorem 1 with cst replaced by ast in the equations. (Let us call the variant version Theorem 1 0 , since it will be used quite often later.)…”
Section: Related Workmentioning
confidence: 99%
“…Expr, Term, and Factor) to express operator priority, and write printing strategies to produce (preserve) 10FL01 10 Although they use different implementation techniques, we will not dive into them in our related work. 10FL02 See Matsuda and Wang's related work for a comparison [36].…”
Section: Related Workmentioning
confidence: 99%