一句话:提出可调抽象分配函数,统一并泛化高阶控制流分析中的 polyvariance,且保证可靠性。
高阶程序的控制流分析需有限近似所有执行中的数据与控制流,其 polyvariance 决定每个语法实体保留多少抽象版本。单版本、k-call、k-object、参数敏感等策略都在精度与复杂度间权衡,但缺乏统一刻画。本文扩展 abstracting abstract machines(AAM)方法,允许对底层分析任意插桩并调优抽象分配函数,从而统一描述多版本性的设计空间。作者证明该抽象分配器框架既泛化经典分析,又通过对分配函数行为的简单修改复现已有风格,并产生新组合与变体;同时给出与调优无关的可靠性保证。
Abstract In higher order settings, control-flow analysis aims to model the propagation of both data and control by finitely approximating program behaviors across all possible executions. The polyvariance of an analysis describes the number of distinct abstract representations, or variants, for each syntactic entity (e.g., functions, variables, or intermediate expressions). Monovariance, one of the most basic forms of polyvariance, maintains only a single abstract representation for each variable or expression. Other polyvariant strategies allow a greater number of distinct abstractions and increase analysis complexity with the aim of increasing analysis precision. For example, k -call sensitivity distinguishes flows by the most recent k call sites, k -object sensitivity by a history of allocation points, and argument sensitivity by a tuple of dynamic argument types. From this perspective, even a concrete operational semantics may be thought of as an unboundedly polyvariant analysis. In this paper, we develop a unified methodology that fully captures this design space. It is easily tunable and guarantees soundness regardless of how tuned. We accomplish this by extending the method of abstracting abstract machines, a systematic approach to abstract interpretation of operational abstract-machine semantics. Our approach permits arbitrary instrumentation of the underlying analysis and arbitrary tuning of an abstract-allocation function. We show that the design space of abstract allocators both unifies and generalizes existing notions of polyvariance. Simple changes to the behavior of this function recapitulate classic styles of analysis and yield novel combinations and variants.
@article{paperbot337,
title = {Abstract allocation as a unified approach to polyvariance in control-flow analyses},
author = {THOMAS GILRAY and MICHAEL D. ADAMS and MATTHEW MIGHT},
journal = {Journal of Functional Programming},
volume = {28},
year = {2018},
doi = {10.1017/s0956796818000138}
}