paperbot · PL 论文追踪

RSS

Recurrence extraction for functional programs through call-by-push-value

POPL 4(POPL)2019
G. A. Kavvos, Edward Morehouse, Daniel R. Licata, Norman Danner

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

原文摘要(Abstract)

The main way of analysing the complexity of a program is that of extracting and solving a recurrence that expresses its running time in terms of the size of its input. We develop a method that automatically extracts such recurrences from the syntax of higher-order recursive functional programs. The resulting recurrences, which are programs in a call-by-name language with recursion, explicitly compute the running time in terms of the size of the input. In order to achieve this in a uniform way that covers both call-by-name and call-by-value evaluation strategies, we use Call-by-Push-Value (CBPV) as an intermediate language. Finally, we use domain theory to develop a denotational cost semantics for the resulting recurrences.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot573,
  title = {Recurrence extraction for functional programs through call-by-push-value},
  author = {G. A. Kavvos and Edward Morehouse and Daniel R. Licata and Norman Danner},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {4},
  number = {POPL},
  year = {2019},
  doi = {10.1145/3371083}
}