2020
DOI: 10.1145/3409000
|View full text |Cite
|
Sign up to set email alerts
|

Sparcl: a language for partially-invertible computation

Abstract: Invertibility is a fundamental concept in computer science, with various manifestations in software development (serializer/deserializer, parser/printer, redo/undo, compressor/decompressor, and so on). Full invertibility necessarily requires bijectivity, but the direct approach of composing bijective functions to develop invertible programs is too restrictive to be useful. In this paper, we take a different approach by focusing on partiallyinvertible functionsÐfunctions that become invertible if some of their … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1

Citation Types

0
3
0

Year Published

2022
2022
2024
2024

Publication Types

Select...
4
2

Relationship

1
5

Authors

Journals

citations
Cited by 11 publications
(3 citation statements)
references
References 66 publications
0
3
0
Order By: Relevance
“…Another useful string processing algorithm is the encoding and decoding, which is usually used in compressing a string. It is very appropriate to write them as a single bidirectional program in order to make it easier to maintain and optimize the encoding and decoding algorithms at the same time (Matsuda & Wang, 2020). Let us consider the following simple string encoding algorithm which illustrates the idea of Run Length Encoding:…”
Section: String Encoding and Decodingmentioning
confidence: 99%
“…Another useful string processing algorithm is the encoding and decoding, which is usually used in compressing a string. It is very appropriate to write them as a single bidirectional program in order to make it easier to maintain and optimize the encoding and decoding algorithms at the same time (Matsuda & Wang, 2020). Let us consider the following simple string encoding algorithm which illustrates the idea of Run Length Encoding:…”
Section: String Encoding and Decodingmentioning
confidence: 99%
“…The major changes include a description of our Agda implementation in Section 4 and the arithmetic coding and LZ77 examples in Sections 5.3 and 5.4. Moreover, the related work section (Section 6) is updated to include work published after the preliminary version (Matsuda & Wang, 2020).…”
Section: Introductionmentioning
confidence: 99%
“…A preliminary version of this paper appeared in ICFP20 (Matsuda & Wang, 2020) with the same title. The major changes include a description of our Agda implementation in Section 4 and the arithmetic coding and LZ77 examples in Sections 5.3 and 5.4.…”
Section: Introductionmentioning
confidence: 99%