From folklore to fact: comparing implementations of stacks and continuations
Kavon Farvardin, John Reppy
Abstract
The efficient implementation of function calls and non-local control transfers is a critical part of modern language implementations and is important in the implementation of everything from recursion, higher-order functions, concurrency and coroutines, to task-based parallelism. In a compiler, these features can be supported by a variety of mechanisms, including call stacks, segmented stacks, and heap-allocated continuation closures.
Topics & Concepts
Computer scienceImplementationCompilerProgramming languageContinuationConcurrencyParallel computingHeap (data structure)Recursion (computer science)Parallelism (grammar)Theoretical computer scienceParallel Computing and Optimization TechniquesLogic, programming, and type systemsDistributed systems and fault tolerance