Assessing the Overhead of ML Exceptions by Selective CPS Transformation
DOI:
https://doi.org/10.7146/brics.v5i15.19287Abstract
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.
Downloads
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
Issue
Section
Articles
License
Articles published in DAIMI PB are licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.