Sound gradual typing: only mostly dead

Sound gradual typing: only mostly dead
复制标题

声音渐进打字:只有大部分死了

DOI:
10.1145/3133878
复制
发表时间:
2017
影响因子:
--
通讯作者:
Bauman S
Bauman S
中科院分区:
--
文献类型:
--
作者:
Bauman S

文献摘要

参考文献

被引文献

相似文献

虽然渐进式打字已被证明对程序员具有吸引力,但由于执行的运行时开销,许多系统都避免了声音渐进式打字。在声音渐进类型的背景下,轶事和系统证据都表明运行时成本相当高,并且通常是不可接受的,这使人们对健全性作为一种方法的可行性产生了怀疑。我们证明这些开销不是根本性的,并且通过适当的改进,即时编译器可以大大减少声音渐进类型的开销。我们的研究采用了最近一篇关于 Typed Racket 中渐进打字性能的论文(Takikawa 等人,POPL 2016)中发表的基准,并使用 Racket 的实验性跟踪 JIT 编译器(称为 Pycket)对其进行评估。在典型的基准测试中,Pycket 能够消除 90% 以上的渐进式打字开销。虽然我们目前的结果并不是优化渐进式打字的最终结果,但我们表明情况并不可怕,而且还需要做更多的工作。Pycket 的性能来自多个来源,我们分别详细说明和测量。首先,我们应用一个复杂的跟踪 JIT 编译器和优化器,它们是使用最初为 PyPy 创建的 RPython 框架在 Pycket 中自动生成的。其次,我们将优化工作的重点放在运行时检查带来的挑战上,这些挑战由伴侣和模仿者在 Racket 中实现。我们引入了表示改进,包括隐藏类的新颖使用来优化这些数据结构。
While gradual typing has proven itself attractive to programmers, many systems have avoided sound gradual typing due to the run time overhead of enforcement. In the context of sound gradual typing, both anecdotal and systematic evidence has suggested that run time costs are quite high, and often unacceptable, casting doubt on the viability of soundness as an approach.We show that these overheads are not fundamental, and that with appropriate improvements,just-in-time compilers can greatly reduce the overhead of sound gradual typing. Our study takes benchmarks published in a recent paper on gradual typing performance in Typed Racket (Takikawa et al., POPL 2016) and evaluates them using a experimental tracing JIT compiler for Racket, called Pycket. On typical benchmarks, Pycket is able to eliminate more than 90% of the gradual typing overhead. While our current results are not the final word in optimizing gradual typing, we show that the situation is not dire, and where more work is needed.Pycket's performance comes from several sources, which we detail and measure individually. First, we apply a sophisticated tracing JIT compiler and optimizer, automatically generated in Pycket using the RPython framework originally created for PyPy. Second, we focus our optimization efforts on the challenges posed by run time checks, implemented in Racket bychaperones and impersonators. We introduce representation improvements, including a novel use ofhidden classesto optimize these data structures.
DOI: 10.1145/3133876
发表时间: 2016-02
影响因子: --
作者:
Edd Barrett;Carl Friedrich Bolz-Tereick;Rebecca Killick;S. Mount;L. Tratt
通讯作者: Edd Barrett;Carl Friedrich Bolz-Tereick;Rebecca Killick;S. Mount;L. Tratt
TypeScript 的具体类型
DOI: 10.4230/lipics.ecoop.2015.76
发表时间: 2015
影响因子: --
作者:
G. Richards;Francesco Zappa Nardelli;J. Vitek
通讯作者: J. Vitek
JavaScript 的快速、精确的混合类型推理
DOI: 10.1145/2254064.2254094
发表时间: 2012
期刊: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子: --
作者:
Brian Hackett;Shu
通讯作者: Shu
DOI: 10.1007/978-3-540-73589-2_2
发表时间: 2007-07
期刊: --
影响因子: --
作者:
Jeremy G. Siek;Walid Taha
通讯作者: Jeremy G. Siek;Walid Taha
声音渐进打字已经死了吗?
DOI: --
发表时间: 2016
期刊: ACM-SIGACT Symposium on Principles of Programming Languages
影响因子: --
作者:
Asumu Takikawa;Daniel Feltey;B. Greenman;Max S. New;J. Vitek;M. Felleisen
通讯作者: M. Felleisen