Proceedings of the 2005 ACM SIGPLAN Workshop on Haskell 2005
DOI: 10.1145/1088348.1088357
|View full text |Cite
|
Sign up to set email alerts
|

There and back again

Abstract: Invertible programming occurs in the area of data conversion where it is required that the conversion in one direction is the inverse of the other. For that purpose, we introduce bidirectional arrows (biarrows). The bi-arrow class is an extension of Haskell's arrow class with an extra combinator that changes the direction of computation.The advantage of the use of bi-arrows for invertible programming is the preservation of invertibility properties using the biarrow combinators. Programming with bi-arrows in a … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
5
0

Year Published

2007
2007
2021
2021

Publication Types

Select...
5
1

Relationship

0
6

Authors

Journals

citations
Cited by 28 publications
(5 citation statements)
references
References 20 publications
0
5
0
Order By: Relevance
“…Given a pattern P &P 2 , it satisfies disjointness if P 1 and P 2 match disjoint fields. 1 To understand this, suppose P 1 and P 2 relate different abstract arguments a 1 and a 2 to overlapping bits in a bit string l. Then, we cannot determine if the values in the overlapping bits are for a 1 or a 2 . Hence, the derived binary relation cannot possibly be a bijection.…”
Section: Well-formedness Of Specificationsmentioning
confidence: 99%
See 1 more Smart Citation
“…Given a pattern P &P 2 , it satisfies disjointness if P 1 and P 2 match disjoint fields. 1 To understand this, suppose P 1 and P 2 relate different abstract arguments a 1 and a 2 to overlapping bits in a bit string l. Then, we cannot determine if the values in the overlapping bits are for a 1 or a 2 . Hence, the derived binary relation cannot possibly be a bijection.…”
Section: Well-formedness Of Specificationsmentioning
confidence: 99%
“…Instruction decoding and encoding are special cases of parsing and pretty printing, respectively. Although there was early work on verifying that parsing and pretty-printing are inverses of each other by formulating them as bijections [1,10], this requirement was perceived as too strong [16]. Most of the recent work on verified parsing and pretty printing are dedicated to verify parser generators based on context-free grammars, regular expressions, parser combinators, or general data formats [3,11,17].…”
Section: Related Work and Conclusionmentioning
confidence: 99%
“…This approach to invertible languages is not new. As a matter of fact, there have been a number of proposals for similar purposes [19,20,21,22,23]. On the other hand, reversible languages are usually domain-specific; it is hard to directly reuse them for different applications other than the ones for which they were designed.…”
Section: The Right-invertible Language Rinvmentioning
confidence: 99%
“…The language rinv owes its origins to the rich literature on invertible programming [19,22], a programming paradigm where programs can be executed both forwards and backwards. Mu et al [19] concentrate their effort on designing a language that provides only injective functions.…”
Section: Invertible Programmingmentioning
confidence: 99%
See 1 more Smart Citation