【24h】

On Regions and Linear Types

机译:关于区域和线性类型

获取原文
获取原文并翻译 | 示例

摘要

We explore how two different mechanisms for reasoning about state, linear typing and the type, region and effect discipline, complement one another in the design of a strongly typed functional programming language. The basis for our language is a simple lambda calculus containing first-class memory regions, which are explicitly passed as arguments to functions, returned as results and stored in user-defined data structures. In order to ensure appropriate memory safety properties, we draw upon the literature on linear type systems to help control access to and deallocation of regions. In fact, we use two different, interpretations of linear types, one in which multiple-use values are freely copied and discarded and one in which multiple-use values are explicitly reference-counted, and show that both interpretations give rise to interesting invariants for manipulating regions. We also explore new programming paradigms that arise by mixing first-class regions and conventional linear data structures.
机译:我们探索关于状态,线性类型以及类型,区域和效果规则的两种不同推理机制如何在一种强类型函数式编程语言的设计中相互补充。我们语言的基础是一个简单的lambda演算,其中包含一流的内存区域,这些内存区域明确地作为参数传递给函数,作为结果返回并存储在用户定义的数据结构中。为了确保适当的内存安全性,我们利用有关线性类型系统的文献来帮助控制对区域的访问和释放。实际上,我们使用两种不同的线性类型解释,一种解释是自由复制和丢弃多次使用值,另一种是明确引用计数多次使用值,并且表明这两种解释都引起了有趣的不变式。操纵区域。我们还将探索通过混合一流区域和常规线性数据结构而产生的新编程范例。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号