Staging beyond terms: prospects and challenges

Staging beyond terms: prospects and challenges
复制标题

超越条款:前景与挑战

DOI:
10.1145/2847538.2847548
复制
发表时间:
2016
期刊:
Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation
影响因子:
--
通讯作者:
Yukiyoshi Kameyama
Yukiyoshi Kameyama
中科院分区:
--
文献类型:
--
作者:
Jun Inoue;Oleg Kiselyov;Yukiyoshi Kameyama

文献摘要

参考文献

被引文献

相似文献

暂存是一种程序生成范例,具有干净、经过充分研究的语义,可以静态地确保生成的代码始终具有良好的类型和范围。分段通常用于针对已知属性或数据部分进行专门化程序,以提高效率,但到目前为止,它仅限于生成术语。这篇简短的论文描述了我们正在进行的工作,将具有强大安全保证的 staging 扩展到非术语的生成,重点关注 ML 风格的模块。目的是列出承诺和挑战,然后提出一个问题,征求社区的专业知识,评估我们的扩展对于在术语领域之外应用分期的目的有多么重要。我们演示了我们的扩展在专门函子应用程序中的使用,以消除其在 OCaml 中的(目前较大的)开销。我们解释了这些扩展带来的挑战,并确定了有希望的攻击路线。然而,出乎意料的是,我们可以通过将模块(可能包含抽象类型)表示为多态记录来完全避免模块生成。在一流模块的帮助下,模块专业化可以简化为普通术语专业化,这可以通过常规分期来完成。这种黑客攻击的普遍程度尚不清楚。因此,我们向社区提出一个问题:模块生成是否有一个令人信服的用例?有了这些见解和问题,我们为下一阶段研究的长期计划提供了一个起点。
Staging is a program generation paradigm with a clean, well-investigated semantics which statically ensures that the generated code is always well-typed and well-scoped. Staging is often used for specializing programs to the known properties or parts of data to improve efficiency, but so far it has been limited to generating terms. This short paper describes our ongoing work on extending staging, with its strong safety guarantees, to generation of non-terms, focusing on ML-style modules. The purpose is to map out the promises and challenges, then to pose a question to solicit the community's expertise in evaluating how essential our extensions are for the purpose of applying staging beyond the realm of terms. We demonstrate our extensions' use in specializing functor applications to eliminate its (currently large) overhead in OCaml. We explain the challenges that those extensions bring in and identify a promising line of attack. Unexpectedly, however, it turns out that we can avoid module generation altogether by representing modules, possibly containing abstract types, as polymorphic records. With the help of first-class modules, module specialization reduces to ordinary term specialization, which can be done with conventional staging. The extent to which this hack generalizes is unclear. Thus we have a question to the community: is there a compelling use case for module generation? With these insights and questions, we offer a starting point for a long-term program in the next stage of staging research.
Concoqtion:现在索引类型!
DOI: 10.1145/1244381.1244400
发表时间: 2007
期刊: --
影响因子: --
作者:
Seth Fogarty;E. Pasalic;Jeremy G. Siek;Walid Taha
通讯作者: Walid Taha
可综合的高级硬件描述:使用静态类型的两级语言来保证verilog可综合性
DOI: 10.1145/1328408.1328416
发表时间: 2008
影响因子: 7.4
作者:
Jennifer Gillenwater;G. Malecha;Cherif R. Salama;A. Zhu;Walid M. Taha;J. Grundy;J. O'Leary
通讯作者: J. O'Leary
轻柔的悬浮艺术
DOI: 10.1145/1932681.1863547
发表时间: 2010
影响因子: --
作者:
Chapman J
通讯作者: Chapman J
MLton 中的整个程序编译
DOI: 10.1145/1159876.1159877
发表时间: 2006
期刊: Higher-Order and Symbolic Computation
影响因子: --
作者:
Stephen Weeks
通讯作者: Stephen Weeks
用于生成不纯净但卫生的代码的组合器
DOI: 10.1016/j.scico.2015.08.007
发表时间: 2015
影响因子: 1.3
作者:
Yukiyoshi Kameyama;Oleg Kiselyov;Chung-chieh Shan
通讯作者: Chung-chieh Shan