Linear type systems need to keep track of how programs use their resources. The standard approach is to use context splits specifying how resources are (disjointly) split across subterms. In this approach, context splits redundantly echo information which is already present within subterms. An alternative approach is to use leftover typing, where in addition to the usual (input) usage context, typing judgments have also an output usage context: the leftovers. In this approach, the leftovers of one typing derivation are fed as input to the next, threading through linear resources while avoiding context splits. We use leftover typing to define a type system for a resource-aware {\pi}-calculus, a process algebra used to model concurrent systems. Our type system is parametrised over a set of usage algebras that are general enough to encompass shared types (free to reuse and discard), graded types (use exactly n number of times) and linear types (use exactly once). Linear types are important in the {\pi}-calculus: they ensure privacy and safety of communication and avoid race conditions, while graded and shared types allow for more flexible programming. We provide a framing theorem for our type system, generalise the weakening and strengthening theorems to include linear types, and prove subject reduction. Our formalisation is fully mechanised in about 1850 lines of Agda.


翻译:线性系统需要跟踪程序如何使用其资源。 标准的方法是使用上下文分割来说明资源是如何( 不同地) 在不同子术语之间分割的。 在这种方式中, 上下文将多余的回声信息分割为子术语中已经存在的信息。 另一种办法是使用剩余打字, 除了通常( 投入) 使用背景之外, 打字判断还包含输出使用背景: 剩余部分 。 在这种方式中, 一个打字衍生的剩余部分被输入到下一个输入中, 通过线性资源串线性串行, 避免上下文分割 。 我们使用剩余打字来定义一种资源认知 {pi} 计算系统的类型, 这是一种用于模拟并行系统的过程代数。 我们的型号系统与一套通用的用法代数相近, 包括共享类型( 自由再利用和抛弃) 、 分级类型( 准确使用 n 次数) 和线性类型( 一次使用)。 线性类型在 缩略图中很重要 。 我们的缩略图类型中确保通信的隐私和安全性, 并避免 缩略式 类型 。 将 我们的系统 类型, 升级类型 和 将 升级类型, 将 我们的 升级 类型, 和 的 打印类型 和 以 升级 升级 类型 类型, 升级类型,,,,,,,, 升级类型,,, 和, 升级类型, 和 升级,,,, 类型,,,, 类型,,,,,,,,,,,,,,,,,,,,,,,, 类型 类型 类型 类型 类型 类型 类型,, 类型,,, 类型,,,,,, 类型 类型 类型 类型 类型,,, 和,,,, 类型 类型,,,,,,,,,,,, 和 类型 类型

0
下载
关闭预览

相关内容

专知会员服务
41+阅读 · 2020年12月18日
专知会员服务
123+阅读 · 2020年9月8日
专知会员服务
198+阅读 · 2020年3月6日
FlowQA: Grasping Flow in History for Conversational Machine Comprehension
专知会员服务
25+阅读 · 2019年10月18日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
145+阅读 · 2019年10月12日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
91+阅读 · 2019年10月10日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
100+阅读 · 2019年10月9日
CCF推荐 | 国际会议信息10条
Call4Papers
7+阅读 · 2019年5月27日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
人工智能 | NIPS 2019等国际会议信息8条
Call4Papers
7+阅读 · 2019年3月21日
五个精彩实用的自然语言处理资源
机器学习研究会
6+阅读 · 2018年2月23日
人工智能 | 国际会议/SCI期刊约稿信息9条
Call4Papers
3+阅读 · 2018年1月12日
分布式TensorFlow入门指南
机器学习研究会
4+阅读 · 2017年11月28日
计算机视觉近一年进展综述
机器学习研究会
8+阅读 · 2017年11月25日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
【推荐】MXNet深度情感分析实战
机器学习研究会
16+阅读 · 2017年10月4日
自然语言处理(二)机器翻译 篇 (NLP: machine translation)
DeepLearning中文论坛
10+阅读 · 2015年7月1日
VIP会员
相关VIP内容
专知会员服务
41+阅读 · 2020年12月18日
专知会员服务
123+阅读 · 2020年9月8日
专知会员服务
198+阅读 · 2020年3月6日
FlowQA: Grasping Flow in History for Conversational Machine Comprehension
专知会员服务
25+阅读 · 2019年10月18日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
145+阅读 · 2019年10月12日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
91+阅读 · 2019年10月10日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
100+阅读 · 2019年10月9日
相关资讯
CCF推荐 | 国际会议信息10条
Call4Papers
7+阅读 · 2019年5月27日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
人工智能 | NIPS 2019等国际会议信息8条
Call4Papers
7+阅读 · 2019年3月21日
五个精彩实用的自然语言处理资源
机器学习研究会
6+阅读 · 2018年2月23日
人工智能 | 国际会议/SCI期刊约稿信息9条
Call4Papers
3+阅读 · 2018年1月12日
分布式TensorFlow入门指南
机器学习研究会
4+阅读 · 2017年11月28日
计算机视觉近一年进展综述
机器学习研究会
8+阅读 · 2017年11月25日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
【推荐】MXNet深度情感分析实战
机器学习研究会
16+阅读 · 2017年10月4日
自然语言处理(二)机器翻译 篇 (NLP: machine translation)
DeepLearning中文论坛
10+阅读 · 2015年7月1日
Top
微信扫码咨询专知VIP会员