Abstracting Abstract Machines

被引:12
|
作者
Van Horn, David [1 ]
Might, Matthew [2 ]
机构
[1] Northeastern Univ, Boston, MA 02115 USA
[2] Univ Utah, Salt Lake City, UT 84112 USA
关键词
Languages; Theory; abstract machines; abstract interpretation; FLOW-ANALYSIS;
D O I
10.1145/1932681.1863553
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We describe a derivational approach to abstract interpretation that yields novel and transparently sound static analyses when applied to well-established abstract machines. To demonstrate the technique and support our claim, we transform the CEK machine of Felleisen and Friedman, a lazy variant of Krivine's machine, and the stack-inspecting CM machine of Clements and Felleisen into abstract interpretations of themselves. The resulting analyses bound temporal ordering of program events; predict return-flow and stack-inspection behavior; and approximate the flow and evaluation of by-need parameters. For all of these machines, we find that a series of well-known concrete machine refactorings, plus a technique we call store-allocated continuations, leads to machines that abstract into static analyses simply by bounding their stores. We demonstrate that the technique scales up uniformly to allow static analysis of realistic language features, including tail calls, conditionals, side effects, exceptions, first-class continuations, and even garbage collection.
引用
收藏
页码:51 / 62
页数:12
相关论文
共 50 条
  • [21] Abstracting dependencies between software configuration items
    Gunter, CA
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2000, 9 (01) : 94 - 131
  • [22] Abstract specialization and its applications
    Puebla, G
    Hermenegildo, M
    ACM SIGPLAN NOTICES, 2003, 38 (10) : 269 - 283
  • [23] An Abstract Interpretation Framework for Termination
    Cousot, Patrick
    Cousot, Radhia
    ACM SIGPLAN NOTICES, 2012, 47 (01) : 245 - 257
  • [24] Abstracting gradual references
    Toro, Matias
    Tanter, Eric
    SCIENCE OF COMPUTER PROGRAMMING, 2020, 197
  • [25] Abstracting Gradual Typing
    Garcia R.
    Clark A.M.
    Tanter E.
    ACM SIGPLAN Notices, 2016, 51 (01): : 429 - 442
  • [26] A functional correspondence between call-by-need evaluators and lazy abstract machines
    Ager, MS
    Danvy, O
    Midtgaard, J
    INFORMATION PROCESSING LETTERS, 2004, 90 (05) : 223 - 232
  • [27] A functional correspondence between monadic evaluators and abstract machines for languages with computational effects
    Ager, MS
    Danvy, O
    Midtgaard, J
    THEORETICAL COMPUTER SCIENCE, 2005, 342 (01) : 149 - 172
  • [28] DENOTATIONAL ABSTRACT INTERPRETATION OF LOGIC PROGRAMS
    MARRIOTT, K
    SONDERGAARD, H
    JONES, ND
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1994, 16 (03): : 607 - 648
  • [29] A logical model for relational abstract domains
    Giacobazzi, R
    Scozzari, F
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1998, 20 (05): : 1067 - 1109
  • [30] Abstracting Gradual Typing
    Garcia, Ronald
    Clark, Alison M.
    Tanter, Eric
    ACM SIGPLAN NOTICES, 2016, 51 (01) : 429 - 442