Abstracting abstract machines

作者: David Van Horn , Matthew Might

DOI: 10.1145/1863543.1863553

关键词:

摘要: We describe a derivational approach to abstract interpretation that yields novel and transparently sound static analyses when applied well-established machines. To demonstrate the technique support our claim, we transform CEK machine of Felleisen Friedman, lazy variant Krivine's machine, stack-inspecting CM Clements into interpretations themselves. The resulting bound temporal ordering program events; predict return-flow stack-inspection behavior; approximate flow evaluation by-need parameters. For all these machines, find series well-known concrete refactorings, plus call store-allocated continuations, leads machines simply by bounding their stores. scales up uniformly allow analysis realistic language features, including tail calls, conditionals, side effects, exceptions, first-class even garbage collection.

参考文章(27)
Olin Grigsby Shivers, Control-flow analysis of higher-order languages of taming lambda Carnegie Mellon University. ,(1991)
Patrick Cousot, The calculational design of a generic abstract interpreter IOS Press. pp. 421- 505 ,(1999)
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Semantics Engineering with PLT Redex ,(2009)
Jan Midtgaard, Thomas Jensen, A Calculational Approach to Control-Flow Analysis by Abstract Interpretation Static Analysis. pp. 347- 362 ,(2008) , 10.1007/978-3-540-69166-2_23
Andrew Edward Ayers, Abstract analysis and optimization of scheme Massachusetts Institute of Technology. ,(1993)
Karl -Filip Faxén, Optimizing Lazy Functional Programs Using Flow Inference static analysis symposium. pp. 136- 153 ,(1995) , 10.1007/3-540-60360-3_37
Neil D. Jones, Flow Analysis of Lambda Expressions (Preliminary Version) international colloquium on automata, languages and programming. ,vol. 10, pp. 114- 128 ,(1981) , 10.1007/3-540-10843-2_10
John Clements, Matthew Flatt, Matthias Felleisen, Modeling an Algebraic Stepper european symposium on programming. ,vol. 2028, pp. 320- 334 ,(2001) , 10.1007/3-540-45309-1_21
Mads Sig Ager, Olivier Danvy, Jan Midtgaard, A functional correspondence between call-by-need evaluators and lazy abstract machines Information Processing Letters. ,vol. 90, pp. 223- 232 ,(2004) , 10.1016/J.IPL.2004.02.012