Assessing the Overhead of ML Exceptions by Selective CPS Transformation
AbstractML'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.
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
Articles published in DAIMI PB are licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.