Barreca, Oscar
(2022)

*Compression of Labeled Spine Trees.*
[Laurea], Università di Bologna, Corso di Studio in

Informatica [L-DM270]

Documenti full-text disponibili:

## Abstract

Recent developments in the implementation of functional programming languages rely on a specific form of labeled tree to represent the call hierarchy of functions. Such trees, that we refer to as spine trees, or simply spines for short, possess a very regular structure that makes them suitable for high compression, i.e. a reduction in the space needed to represent them internally. The discovery of an efficient method of compression for spines would directly impact to the implementation of functional programming languages that rely on them.
In this work, we set out to investigate the possibilities of compression of labeled spine trees. Since we hypothesize spines to occur anywhere within a larger, possibly unstructured labeled tree, their “shape” needs to be recognized by an algorithmic procedure. We start therefore by addressing the problem of spine detection, proposing asymptotically efficient methods, both in time and in space. We then progress to the problem of their storage, namely the way in which they can be stored within or apart the tree they were originally embedded in, and finally turn to the problem of their own compression.
The study of spine compression is done by applying already established results from the subfield of information theory known as data compression. Rather than devise a new compression algorithm from scratch, we try to understand which, among the already available ones, is fit to our own interests. In studying the compression of spine trees, we try in particular to determine when a so-called logarithmic compression, namely a reduction of the size of the spine to the logarithm of its original size, can be achieved. We first introduce a theoretical criterion for classifying the adequacy of our solutions, and then progress incrementally to our findings, until we reach a solution that is very promising both in the capacity of achieving logarithmic compression and in the computational resources needed to obtain this storage reduction.

Abstract

Recent developments in the implementation of functional programming languages rely on a specific form of labeled tree to represent the call hierarchy of functions. Such trees, that we refer to as spine trees, or simply spines for short, possess a very regular structure that makes them suitable for high compression, i.e. a reduction in the space needed to represent them internally. The discovery of an efficient method of compression for spines would directly impact to the implementation of functional programming languages that rely on them.
In this work, we set out to investigate the possibilities of compression of labeled spine trees. Since we hypothesize spines to occur anywhere within a larger, possibly unstructured labeled tree, their “shape” needs to be recognized by an algorithmic procedure. We start therefore by addressing the problem of spine detection, proposing asymptotically efficient methods, both in time and in space. We then progress to the problem of their storage, namely the way in which they can be stored within or apart the tree they were originally embedded in, and finally turn to the problem of their own compression.
The study of spine compression is done by applying already established results from the subfield of information theory known as data compression. Rather than devise a new compression algorithm from scratch, we try to understand which, among the already available ones, is fit to our own interests. In studying the compression of spine trees, we try in particular to determine when a so-called logarithmic compression, namely a reduction of the size of the spine to the logarithm of its original size, can be achieved. We first introduce a theoretical criterion for classifying the adequacy of our solutions, and then progress incrementally to our findings, until we reach a solution that is very promising both in the capacity of achieving logarithmic compression and in the computational resources needed to obtain this storage reduction.

Tipologia del documento

Tesi di laurea
(Laurea)

Autore della tesi

Barreca, Oscar

Relatore della tesi

Correlatore della tesi

Scuola

Corso di studio

Ordinamento Cds

DM270

Parole chiave

information theory,data compression

Data di discussione della Tesi

25 Maggio 2022

URI

## Altri metadati

Tipologia del documento

Tesi di laurea
(NON SPECIFICATO)

Autore della tesi

Barreca, Oscar

Relatore della tesi

Correlatore della tesi

Scuola

Corso di studio

Ordinamento Cds

DM270

Parole chiave

information theory,data compression

Data di discussione della Tesi

25 Maggio 2022

URI

## Statistica sui download

Gestione del documento: