Apollo (University of Cambridge) · 2021 · 40 citations · 23 references
Open access
ComputingComputer ScienceCompilersProgramming LanguagesSystems ProgrammingControl-flow AnalysisData-flow AnalysisControl Flow ControlModular Programming
Effect handlers have been gathering momentum as a mechanism for modular programming with user-defined effects. Effect handlers allow for non-local control flow mechanisms such as generators, async/await, lightweight threads and coroutines to be composably expressed. We present a design and evaluate a full-fledged efficient implementation of effect handlers for OCaml, an industrial-strength multi-paradigm programming language. Our implementation strives to maintain the backwards compatibility and performance profile of existing OCaml code. Retrofitting effect handlers onto OCaml is challenging since OCaml does not currently have any non-local control flow mechanisms other than exceptions. Our implementation of effect handlers for OCaml: (i) imposes a mean 1% overhead on a comprehensive macro benchmark suite that does not use effect handlers; (ii) remains compatible with program analysis tools that inspect the stack; and (iii) is efficient for new code that makes use of effect handlers.
23
Pyro: Deep Universal Probabilistic Programming
Eli Bingham, Jonathan P. Chen, Martin Jankowiak et al. · arXiv (Cornell University) · 2018 · 591 citations · Full text
Bringing the web up to speed with WebAssembly
Andreas Haas, Andreas Rossberg, Derek L. Schuff et al. · 2017 · 510 citations · Full text
Revised5 Report on the Algorithmic Language Scheme
Hal Abelson, R. Kent Dybvig, Christopher T. Haynes et al. · LISP and Symbolic Computation · 1998 · 414 citations
Olivier Danvy, Andrzej Filinski · 1990 · 403 citations · Full text
Anil Madhavapeddy, Richard Mortier, Charalampos Rotsos et al. · 2013 · 402 citations