中文

R 语言令人头疼——一种支持一等环境与惰性含作用参数求值的 IR

编程语言 2019-09-09 v2

摘要

R 编程语言结合了若干被认为难以高效分析与实现的特性:动态类型、反射、惰性求值、向量化基本类型、一等闭包,以及对原生代码的广泛使用。此外,变量作用域在运行时被具体化为一等环境。这些特性的组合使得大多数静态程序分析技术不切实际,因而基于它们的编译器优化也无效。我们介绍在 PIR 上的工作,这是一种显式支持一等环境与含作用惰性求值的中间表示。我们描述了 PIR 上的两种数据流分析:第一种支持对变量及其环境进行推理,第二种推断参数在何处被求值。利用它们的分析结果,我们展示了如何省略环境创建并对函数进行内联。

关键词

引用

@article{arxiv.1907.05118,
  title  = {R Melts Brains -- An IR for First-Class Environments and Lazy Effectful Arguments},
  author = {Olivier Flückiger and Guido Chari and Jan Ječmen and Ming-Ho Yee and Jakob Hain and Jan Vitek},
  journal= {arXiv preprint arXiv:1907.05118},
  year   = {2019}
}