【24h】

Blame for All

机译:责备所有人

获取原文

摘要

Several programming languages are beginning to integrate static and dynamic typing, including Racket (formerly PLT Scheme), Perl 6, and C# 4.0 and the research languages Sage (Gronski, Knowles, Tomb, Freund, and Flanagan, 2006) and Thorn (Wrigstad, Eug-ster, Field, Nystrom, and Vitek, 2009). However, an important open question remains, which is how to add parametric polymorphism to languages that combine static and dynamic typing. We present a system that permits a value of dynamic type to be cast to a polymorphic type and vice versa, with relational parametricity enforced by a kind of dynamic sealing along the lines proposed by Matthews and Ahmed (2008) and Neis, Dreyer, and Rossberg (2009). Our system includes a notion of blame, which allows us to show that when casting between a more-precise type and a less-precise type, any cast failures are due to the less-precisely-typed portion of the program. We also show that a cast from a subtype to its supertype cannot fail.
机译:几种编程语言开始集成静态和动态打字,包括球拍(以前PLT方案),Perl 6和C#4.0和研究语言Sage(Gronski,Knowles,Tomb,Freund和Flanagan,2006)和刺(riggstad, eug-ster,田间,nystrom和vitek,2009)。但是,仍然存在一个重要的开放问题,这是如何为组合静态和动态打字的语言添加参数多态性。我们提出了一个系统,允许动态类型的值施加到多态类型,反之亦然,并通过马修斯和艾哈迈德(2008)和Neis,Dreyer和Rossberg提出的线路的一种动态密封强制执行的关系参数(2009)。我们的系统包括责任的概念,它允许我们表明当在更精确的类型和更精确的类型之间铸造时,任何铸造故障都是由于程序的较少键入的部分。我们还表明,从亚型到SuperType的副铸造不能失败。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号