Functional programs as compressed data

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

12 Citations (Scopus)

Abstract

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 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 the paper, 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.

Original languageEnglish
Title of host publicationPOPL
Subtitle of host publicationPEPM'12 - Proceedings of the ACM SIGPLAN 2012 Workshop on Partial Evaluation and Program Manipulation
PublisherAssociation for Computing Machinery
Pages121-130
Number of pages10
ISBN (Print)9781450311182
DOIs
Publication statusPublished - 2012
EventACM SIGPLAN 2012 Workshop on Partial Evaluation and Program Manipulation, PEPM'12, Co-located with POPL 2012 - Philadelphia, PA, United States
Duration: 2012 Jan 232012 Jan 24

Publication series

NameConference Record of the Annual ACM Symposium on Principles of Programming Languages
ISSN (Print)0730-8566

Conference

ConferenceACM SIGPLAN 2012 Workshop on Partial Evaluation and Program Manipulation, PEPM'12, Co-located with POPL 2012
Country/TerritoryUnited States
CityPhiladelphia, PA
Period12/1/2312/1/24

Keywords

  • Algorithms
  • Theory

Fingerprint

Dive into the research topics of 'Functional programs as compressed data'. Together they form a unique fingerprint.

Cite this