@article{Kim_Yi_Danvy_1998, title={Assessing the Overhead of ML Exceptions by Selective CPS Transformation}, volume={5}, url={https://tidsskrift.dk/brics/article/view/19287}, DOI={10.7146/brics.v5i15.19287}, abstractNote={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. <br />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. <br />In this article, we formalize this selective CPS transformation, prove its correctness, and present early experimental data indicating its effect on ML programs.}, number={15}, journal={BRICS Report Series}, author={Kim, Jung-taek and Yi, Kwangkeun and Danvy, Olivier}, year={1998}, month={Jan.} }