Abstracting Abstract Machines A Systematic Approach to Higher-Order Program Analysis

被引:9
作者
Van Horn, David [1 ]
Might, Matthew [2 ]
机构
[1] Northeastern Univ, Boston, MA 02115 USA
[2] Univ Utah, Salt Lake City, UT USA
基金
美国国家科学基金会;
关键词
FLOW-ANALYSIS;
D O I
10.1145/1995376.1995400
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Predictive models are fundamental to engineering reliable software systems. However, designing conservative, computable approximations for the behavior of programs (static analyses) remains a difficult and error-prone process for modern high-level programming languages. What analysis designers need is a principled method for navigating the gap between semantics and analytic models: analysis designers need a method that tames the interaction of complex languages features such as higher-order functions, recursion, exceptions, continuations, objects and dynamic allocation. We contribute a systematic approach to program analysis that yields novel and transparently sound static analyses. Our approach relies on existing derivational techniques to transform high-level language semantics into low-level deterministic state-transition systems (with potentially infinite state spaces). We then perform a series of simple machine refactorings to obtain a sound, computable approximation, which takes the form of a non-deterministic state-transition systems with finite state spaces. The approach scales up uniformly to enable program analysis of realistic language features, including higher-order functions, tail calls, conditionals, side effects, exceptions, first-class continuations, and even garbage collection.
引用
收藏
页码:101 / 109
页数:9
相关论文
共 25 条
[1]  
[Anonymous], 1999, NATO ASI SERIES F
[2]  
[Anonymous], ACM ANN C
[3]  
Ayers A.E., 1993, THESIS MIT
[4]   A concrete framework for environment machines [J].
Biernacka, Malgorzata ;
Brics, Olivier Danvy .
ACM TRANSACTIONS ON COMPUTATIONAL LOGIC, 2008, 9 (01)
[5]  
Cousot P., 1977, P ACM S PRINC PROGR, P238, DOI DOI 10.1145/512950.512973
[6]  
Danvy O., 2004, RS0426 BRICS AARH U
[7]  
Danvy Olivier, 2006, THESIS AARHUS U
[8]  
Felleisen Matthias, 2009, Semantics Engineering with PLT Redex
[9]  
Flanagan C., 1993, PLDI 93 P ACM SIGPLA, P37
[10]  
Flatt M., 2010, REPORT ALGORITHMIC L