Affiliation:
1. Tweag, France
2. University of Ljubljana, Slovenia / Institute of Mathematics, Physics, and Mechanics, Slovenia
3. KU Leuven, Belgium
Abstract
The popularity of algebraic effect handlers as a programming language feature for user-defined computational effects is steadily growing. Yet, even though efficient runtime representations have already been studied, most handler-based programs are still much slower than hand-written code.
This paper shows that the performance gap can be drastically narrowed (in some cases even closed) by means of type-and-effect directed optimising compilation. Our approach consists of source-to-source transformations in two phases of the compilation pipeline. Firstly, elementary rewrites, aided by judicious function specialisation, exploit the explicit type and effect information of the compiler’s core language to aggressively reduce handler applications. Secondly, after erasing the effect information further rewrites in the backend of the compiler emit tight code.
This work comes with a practical implementation: an optimising compiler from Eff, an ML style language with algebraic effect handlers, to OCaml. Experimental evaluation with this implementation demonstrates that in a number of benchmarks, our approach eliminates much of the overhead of handlers, outperforms capability-passing style compilation and yields competitive performance compared to hand-written OCaml code as well Multicore OCaml’s dedicated runtime support.
Funder
Flemish Fund for Scientific Research
Air Force Office of Scientific Research
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. From Capabilities to Regions: Enabling Efficient Compilation of Lexical Effect Handlers;Proceedings of the ACM on Programming Languages;2023-10-16
2. A General Fine-Grained Reduction Theory for Effect Handlers;Proceedings of the ACM on Programming Languages;2023-08-30
3. A Monadic Implementation of Functional Logic Programs;Proceedings of the 24th International Symposium on Principles and Practice of Declarative Programming;2022-09-20
4. A typed continuation-passing translation for lexical effect handlers;Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation;2022-06-09