函数参数的效果系统
编程语言
2012-01-04 v1
摘要
栈分配和一等函数天然难以融合。本文表明,类型与效果系统可以充当清洁剂,帮助这些特性形成良好的乳液。我们对这个问题的兴趣源于在 Chapel 语言上的工作,但该问题也与 C++ 中的 lambda 表达式和 Objective C 中的块(blocks)相关。混合一等函数和栈分配的困难在于安全性、效率和简单性之间的张力。为了保持安全性,必须担心函数比它们引用的变量存活得更久:经典的向上函数参数问题。有些系统恢复了安全性,但失去了程序员可预测的效率;另一些系统则同时提供了安全性和效率,但通过向程序员暴露区域(regions)而牺牲了简单性。本文提出了一种简单设计,它结合了用于安全性的类型与效果系统,以及用于控制效率的函数局部存储。
引用
@article{arxiv.1201.0023,
title = {Effects for Funargs},
author = {Jeremy G. Siek and Michael M. Vitousek and Jonathan D. Turner},
journal= {arXiv preprint arXiv:1201.0023},
year = {2012}
}