Dependent types allow us to express precisely what a function is intended to do. Recent work on Quantitative Type Theory (QTT) extends dependent type systems with linearity, also allowing precision in expressing when a function can run. This is promising, because it suggests the ability to design and reason about resource usage protocols, such as we might find in distributed and concurrent programming, where the state of a communication channel changes throughout program execution. As yet, however, there has not been a full-scale programming language with which to experiment with these ideas. Idris 2 is a new version of the dependently typed language Idris, with a new core language based on QTT, supporting linear and dependent types. In this paper, we introduce Idris 2, and describe how QTT has influenced its design. We give examples of the benefits of QTT in practice including: expressing which data is erased at run time, at the type level; and, resource tracking in the type system leading to type-safe concurrent programming with session types.


翻译:依附类型类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型 类型

0
下载
关闭预览

相关内容

专知会员服务
56+阅读 · 2021年4月12日
专知会员服务
76+阅读 · 2021年3月16日
【干货书】金融数学概念和计算方法的导论,290页pdf
专知会员服务
61+阅读 · 2020年11月16日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
194+阅读 · 2019年10月10日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
【TED】生命中的每一年的智慧
英语演讲视频每日一推
9+阅读 · 2019年1月29日
逆强化学习-学习人先验的动机
CreateAMind
15+阅读 · 2019年1月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
分布式TensorFlow入门指南
机器学习研究会
4+阅读 · 2017年11月28日
Adversarial Variational Bayes: Unifying VAE and GAN 代码
CreateAMind
7+阅读 · 2017年10月4日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
【今日新增】IEEE Trans.专刊截稿信息8条
Call4Papers
7+阅读 · 2017年6月29日
Arxiv
0+阅读 · 2021年5月26日
Knowledge Representation Learning: A Quantitative Review
VIP会员
相关VIP内容
专知会员服务
56+阅读 · 2021年4月12日
专知会员服务
76+阅读 · 2021年3月16日
【干货书】金融数学概念和计算方法的导论,290页pdf
专知会员服务
61+阅读 · 2020年11月16日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
194+阅读 · 2019年10月10日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
相关资讯
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
【TED】生命中的每一年的智慧
英语演讲视频每日一推
9+阅读 · 2019年1月29日
逆强化学习-学习人先验的动机
CreateAMind
15+阅读 · 2019年1月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
分布式TensorFlow入门指南
机器学习研究会
4+阅读 · 2017年11月28日
Adversarial Variational Bayes: Unifying VAE and GAN 代码
CreateAMind
7+阅读 · 2017年10月4日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
【今日新增】IEEE Trans.专刊截稿信息8条
Call4Papers
7+阅读 · 2017年6月29日
Top
微信扫码咨询专知VIP会员