Sparcl: a language for partially-invertible computation
Sparcl: a language for partially-invertible computation
复制标题
Spacl:一种用于部分可逆计算的语言
DOI:
10.1145/3409000
复制
发表时间:
2020
影响因子:
--
通讯作者:
Matsuda K
中科院分区:
文献类型:
--
作者:
Matsuda K
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 onpartially-invertiblefunctions—functions that become invertible if some of their arguments are fixed. The simplest example of such is addition, which becomes invertible when fixing one of the operands. More involved examples include entropy-based compression methods (e.g., Huffman coding), which carry the occurrence frequency of input symbols (in certain formats such as Huffman tree), and fixing this frequency information makes the compression methods invertible.We develop a language Sparcl for programming such functions in a natural way, where partial-invertibility is the norm and bijectivity is a special case, hence gaining significant expressiveness without compromising correctness. The challenge in designing such a language is to allow ordinary programming (the “partially” part) to interact with the invertible part freely, and yet guarantee invertibility by construction. The language Sparcl is linear-typed, and has a type constructor to distinguish data that are subject to invertible computation and those that are not. We present the syntax, type system, and semantics of the language, and prove that Sparcl correctly guarantees invertibility for its programs. We demonstrate the expressiveness of Sparcl with examples including tree rebuilding from preorder and inorder traversals and Huffman coding.
登录
查看更多内容
DOI:
--
发表时间:
2015
期刊:
影响因子:
--
作者:
横山哲郎;ロバートグリュック
通讯作者:
ロバートグリュック
DOI:
10.1007/bfb0017210
发表时间:
1992
期刊:
J. Multiple Valued Log. Soft Comput.
影响因子:
--
作者:
H. Baker
通讯作者:
H. Baker
影响因子:
--
作者:
Kazutaka Matsuda;Meng Wang
通讯作者:
Meng Wang
DOI:
--
发表时间:
2005
期刊:
IEICE Trans. on Information and Systems(in Japanese) Vol.J88-D-I, No.8
影响因子:
--
作者:
Naoki Nishida;Masahiko Sakai;Toshiki Sakabe
通讯作者:
Toshiki Sakabe
影响因子:
0.6
作者:
Capretta, Venanzio
通讯作者:
Capretta, Venanzio