首页> 外文会议>International Symposium on Trends in Functional Programming >Automatically Introducing Tail Recursion in CakeML
【24h】

Automatically Introducing Tail Recursion in CakeML

机译:在Cakeml中自动引入尾部递归

获取原文

摘要

We describe and implement an optimizing compiler transformation which turns non-tail-recursive functions into equivalent tail-recursive functions in an intermediate language of the CakeML compiler. CakeML is a strongly typed functional language based on Standard ML with call-by-value semantics and a fully verified compiler. We integrate our implementation into CakeML compiler, and provide a machine checked proof verifying that the observational semantics of programs is preserved under the transformation. To the best of our knowledge, this is the first fully verified implementation of this transformation in any modern compiler. Moreover, our verification efforts uncover surprising draw-backs in some of the verification techniques employed in several parts of the CakeML compiler. We provide a work-around for these drawbacks, and compare it to potential alternatives.
机译:我们描述并实现了优化编译器转换,该转换将非尾部递归函数变为等效的尾部递归函数,以Cakeml编译器的中间语言。 Cakeml是一种基于标准ml的强大类型的功能语言,带有按Qualigal语义和完全验证的编译器。我们将我们的实施集成到Cakeml编译器中,并提供了一台机器检查证明,验证了在转型下保留了计划的观察语义。据我们所知,这是在任何现代编译器中第一次完全验证此转换的实施。此外,我们的验证努力在Cakeml编译器的几个部分中使用的一些验证技术中揭示了令人惊讶的缺陷。我们为这些缺点提供了一项工作,并将其与潜在替代品进行比较。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号