Environments and the Complexity of Abstract Machines.

Beniamino Accattoli 1 Bruno Barras 2
1 PARSIFAL - Proof search and reasoning with logic specifications
Inria Saclay - Ile de France, LIX - Laboratoire d'informatique de l'École polytechnique [Palaiseau]
Abstract : 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.
Document type :
Conference papers
Complete list of metadatas

Cited literature [39 references]  Display  Hide  Download

Contributor : Beniamino Accattoli <>
Submitted on : Thursday, January 4, 2018 - 1:49:36 PM
Last modification on : Wednesday, March 27, 2019 - 4:41:29 PM
Long-term archiving on: Wednesday, May 2, 2018 - 9:39:44 PM


Files produced by the author(s)



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⟩



Record views


Files downloads