TY - JOUR
T1 - Functional programs as compressed data
AU - Kobayashi, Naoki
AU - Matsuda, Kazutaka
AU - Shinohara, Ayumi
AU - Yaguchi, Kazuya
N1 - Funding Information:
Acknowledgements We would like to thank Oleg Kiselyov, Tatsunari Nakajima, Kunihiko Sadakane, John Tromp, and anonymous referees for discussions and useful comments. This work was partially supported by Kakenhi 23220001.
Publisher Copyright:
© Springer Science+Business Media New York 2013
Copyright:
Copyright 2017 Elsevier B.V., All rights reserved.
PY - 2012/3
Y1 - 2012/3
N2 - We propose an application of programming language techniques to lossless data compression, where tree data are compressed as functional programs that generate them. This “functional programs as compressed data” approach has several advantages. First, it follows from the standard argument of Kolmogorov complexity that the size of compressed data can be optimal up to an additive constant. Secondly, a compression algorithm is clean: it is just a sequence of β-expansions (i.e., the inverse of β-reductions) for λ-terms. Thirdly, one can use program verification and transformation techniques (higher-order model checking, in particular) to apply certain operations on data without decompression. In this article, we present algorithms for data compression and manipulation based on the approach, and prove their correctness. We also report preliminary experiments on prototype data compression/transformation systems.
AB - We propose an application of programming language techniques to lossless data compression, where tree data are compressed as functional programs that generate them. This “functional programs as compressed data” approach has several advantages. First, it follows from the standard argument of Kolmogorov complexity that the size of compressed data can be optimal up to an additive constant. Secondly, a compression algorithm is clean: it is just a sequence of β-expansions (i.e., the inverse of β-reductions) for λ-terms. Thirdly, one can use program verification and transformation techniques (higher-order model checking, in particular) to apply certain operations on data without decompression. In this article, we present algorithms for data compression and manipulation based on the approach, and prove their correctness. We also report preliminary experiments on prototype data compression/transformation systems.
KW - Data compression
KW - Functional programs
KW - Higher-order Model Checking
KW - Program transformation
KW - Semantics based program manipulation
UR - http://www.scopus.com/inward/record.url?scp=84881302979&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84881302979&partnerID=8YFLogxK
U2 - 10.1007/s10990-013-9093-z
DO - 10.1007/s10990-013-9093-z
M3 - Article
AN - SCOPUS:84881302979
SN - 1388-3690
VL - 25
SP - 39
EP - 84
JO - LISP and Symbolic Computation
JF - LISP and Symbolic Computation
IS - 1
ER -