paperbot · PL 论文追踪

RSS

How to Evaluate Blame for Gradual Types, Part 2

ICFP 7(ICFP)2023
Lukas Lazarek, Ben Greenman, Matthias Felleisen, Christos Dimoulas

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(Abstract)

Equipping an existing programming language with a gradual type system requires two major steps. The first and most visible one in academia is to add a notation for types and a type checking apparatus. The second, highly practical one is to provide a type veneer for the large number of existing untyped libraries; doing so enables typed components to import pieces of functionality and get their uses type-checked, without any changes to the libraries. When programmers create such typed veneers for libraries, they make mistakes that persist and cause trouble. The question is whether the academically investigated run-time checks for gradual type systems assist programmers with debugging such mistakes. This paper provides a first, surprising answer to this question via a rational-programmer investigation: run-time checks alone are typically less helpful than the safety checks of the underlying language. Combining Natural run-time checks with blame, however, provides significantly superior debugging hints.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot1910,
  title = {How to Evaluate Blame for Gradual Types, Part 2},
  author = {Lukas Lazarek and Ben Greenman and Matthias Felleisen and Christos Dimoulas},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {7},
  number = {ICFP},
  year = {2023},
  doi = {10.1145/3607836}
}