Is sound gradual typing dead?

Is sound gradual typing dead?
复制标题

声音渐进打字已经死了吗?

DOI:
--
复制
发表时间:
2016
期刊:
ACM-SIGACT Symposium on Principles of Programming Languages
影响因子:
--
通讯作者:
M. Felleisen
M. Felleisen
中科院分区:
--
文献类型:
--
作者:
Asumu Takikawa;Daniel Feltey;B. Greenman;Max S. New;J. Vitek;M. Felleisen

文献摘要

参考文献

被引文献

相似文献

程序员已经开始使用动态类型的语言来进行原型制作和传递大型复杂的系统。在维护和发展这些系统方面,缺乏明确的静态键入将成为瓶颈。作为回应,研究人员探讨了逐渐使用的编程语言的想法,这些语言允许将类型注释逐步添加到以这些未经类似语言之一的方式编写的软件中。这些新的混合语言中的一些插入了键入和未型代码之间的边界的运行时间检查,以建立整个系统的类型声音。通过声音逐渐键入,程序员可以依靠语言实现来提供有意义的错误消息,当时类型不变性。尽管大多数关于声音逐渐键入的研究仍然是理论上的,但由于这些检查,少数新兴实现都遭受了性能开销。有关此主题的出版物均未进行全面的绩效评估。更糟糕的是,一些报告灾难性的数字。作为回应,本文提出了一种评估逐渐使用编程语言的性能的方法。该方法取决于探索从未型到键入的部分转换的空间。对于每个基准,在合成指标中报告了不同版本的性能,该指标将运行时开销与转换工作相关联。该论文报告了将方法应用于键入球拍的结果,这是声音逐渐键入的成熟实现,使用各种大小和复杂性的真实世界程序。基于这些结果,论文得出结论,鉴于实施技术的当前状态,声音逐渐键入面临重大挑战。相反,它提出了一个问题,即实施如何减少与健全性相关的开销以及如何使用工具来指导程序员从病理案例中清除。
Programmers have come to embrace dynamically-typed languages for prototyping and delivering large and complex systems. When it comes to maintaining and evolving these systems, the lack of explicit static typing becomes a bottleneck. In response, researchers have explored the idea of gradually-typed programming languages which allow the incremental addition of type annotations to software written in one of these untyped languages. Some of these new, hybrid languages insert run-time checks at the boundary between typed and untyped code to establish type soundness for the overall system. With sound gradual typing, programmers can rely on the language implementation to provide meaningful error messages when type invariants are violated. While most research on sound gradual typing remains theoretical, the few emerging implementations suffer from performance overheads due to these checks. None of the publications on this topic comes with a comprehensive performance evaluation. Worse, a few report disastrous numbers. In response, this paper proposes a method for evaluating the performance of gradually-typed programming languages. The method hinges on exploring the space of partial conversions from untyped to typed. For each benchmark, the performance of the different versions is reported in a synthetic metric that associates runtime overhead to conversion effort. The paper reports on the results of applying the method to Typed Racket, a mature implementation of sound gradual typing, using a suite of real-world programs of various sizes and complexities. Based on these results the paper concludes that, given the current state of implementation technologies, sound gradual typing faces significant challenges. Conversely, it raises the question of how implementations could reduce the overheads associated with soundness and how tools could be used to steer programmers clear from pathological cases.
Pycket:函数式语言的跟踪 JIT
DOI: 10.1145/2784731.2784740
发表时间: 2015
期刊: --
影响因子: --
作者:
Bauman S
通讯作者: Bauman S