Environments and the Complexity of Abstract Machines. - Archive ouverte HAL
Communication Dans Un Congrès Année : 2017

Environments and the Complexity of Abstract Machines.

Résumé

Abstract machines for functional languages rely on the notion of environment, a data structure storing the previously encountered and delayed beta-redexes. This paper provides a close analysis of the different approaches to define and implement environments. There are two main styles. The most common one is to have many local environments, one for every piece of code in the data structures of the machine. A minority of works instead uses a single global environment. Up to now, the two approaches have been considered equivalent, in particular at the level of the complexity of the overhead: they have both been used to obtain bilinear bounds, that is, linear in the number of beta steps and in the size of the initial term. We start by having a close look on global environments and how to implement them. Then we show that local environments admit implementations that are asymptotically faster than global environments, lowering the dependency from the size of the initial term from linear to logarithmic, thus improving the bounds in the literature. We then focus on a third style, split environments, that are in between local and global ones, and have the benefits of both. Finally, we provide a call-by-need machine with split environments for which we prove the new improved bounds on the overhead.
Fichier principal
Vignette du fichier
p4-accattoli.pdf (774.84 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01675358 , version 1 (04-01-2018)

Identifiants

Citer

Beniamino Accattoli, Bruno Barras. Environments and the Complexity of Abstract Machines.. The 19th International Symposium on Principles and Practice of Declarative Programming, Oct 2017, Namur, Belgium. ⟨10.1145/3131851.3131855⟩. ⟨hal-01675358⟩
199 Consultations
612 Téléchargements

Altmetric

Partager

More