Assessing the Overhead of ML Exceptions by Selective CPS Transformation

  • Jung-taek Kim
  • Kwangkeun Yi
  • Olivier Danvy

Abstract

ML's exception handling makes it possible to describe exceptional execution flows conveniently, but it also forms a performance bottleneck. Our goal is to reduce this overhead by source-level transformation.
To this end, we transform source programs into continuation-passing style (CPS), replacing handle and raise expressions by continuation-catching and throwing expressions, respectively. CPS-transforming every expression, however, introduces a new cost. We therefore use an exception analysis to transform expressions selectively: if an expression is statically determined to involve exceptions then it is CPS-transformed; otherwise, it is left in direct style.
In this article, we formalize this selective CPS transformation, prove its correctness, and present early experimental data indicating its effect on ML programs.
Published
1998-01-15
How to Cite
Kim, J.- taek, Yi, K., & Danvy, O. (1998). Assessing the Overhead of ML Exceptions by Selective CPS Transformation. BRICS Report Series, 5(15). https://doi.org/10.7146/brics.v5i15.19287