Monadic Abstract Interpreters

被引:20
作者
Sergey, Ilya
Devriese, Dominique [1 ]
Might, Matthew [2 ]
Midtgaard, Jan [3 ]
Darais, David [4 ]
Clarke, Dave [1 ]
Piessens, Frank [1 ]
机构
[1] Katholieke Univ Leuven, iMinds DistriNet, Louvain, Belgium
[2] Univ Utah, Salt Lake City, UT 84112 USA
[3] Aarhus Univ, DK-8000 Aarhus C, Denmark
[4] Harvard Univ, Cambridge, MA 02138 USA
关键词
Languages; Theory; abstract machines; abstract interpretation; monads; operational semantics; collecting semantics; abstract garbage collection; interpreters; MACHINES;
D O I
10.1145/2499370.2491979
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Recent developments in the systematic construction of abstract interpreters hinted at the possibility of a broad unification of concepts in static analysis. We deliver that unification by showing context-sensitivity, polyvariance, flow-sensitivity, reachability-pruning, heap-cloning and cardinality-bounding to be independent of any particular semantics. Monads become the unifying agent between these concepts and between semantics. For instance, by plugging the same "context-insensitivity monad" into a monadically-parameterized semantics for Java or for the lambda calculus, it yields the expected context-insensitive analysis. To achieve this unification, we develop a systematic method for transforming a concrete semantics into a monadically-parameterized abstract machine. Changing the monad changes the behavior of the machine. By changing the monad, we recover a spectrum of machines-from the original concrete semantics to a monovariant, flow- and context-insensitive static analysis with a singly-threaded heap and weak updates. The monadic parameterization also suggests an abstraction over the ubiquitous monotone fixed-point computation found in static analysis. This abstraction makes it straightforward to instrument an analysis with high-level strategies for improving precision and performance, such as abstract garbage collection and widening. While the paper itself runs the development for continuation-passing style, our generic implementation replays it for direct-style lambda-calculus and Featherweight Java to support generality.
引用
收藏
页码:399 / 409
页数:11
相关论文
共 50 条
[21]   Abstract specialization and its applications [J].
Puebla, G ;
Hermenegildo, M .
ACM SIGPLAN NOTICES, 2003, 38 (10) :269-283
[22]   An Abstract Interpretation Framework for Termination [J].
Cousot, Patrick ;
Cousot, Radhia .
ACM SIGPLAN NOTICES, 2012, 47 (01) :245-257
[23]   Transforming interpreters into inverse interpreters by partial evaluation [J].
Glück, R ;
Kawada, Y ;
Hashimoto, T .
ACM SIGPLAN NOTICES, 2003, 38 (10) :250-259
[24]   Optimizing Abstract Abstract Machines [J].
Johnson, J. Ian ;
Labich, Nicholas ;
Might, Matthew ;
Van Horn, David .
ACM SIGPLAN NOTICES, 2013, 48 (09) :443-454
[25]   Monadic Expressions and Their Derivatives [J].
Attou, Samira ;
Mignot, Ludovic ;
Miklarz, Clement ;
Nicart, Florent .
RAIRO-THEORETICAL INFORMATICS AND APPLICATIONS, 2024, 58
[26]   Lightweight Monadic Regions [J].
Kiselyov, Oleg ;
Shan, Chung-chieh .
HASKELL'08: PROCEEDINGS OF THE ACM SIGPLAN 2008 HASKELL SYMPOSIUM, 2008, :1-12
[27]   DENOTATIONAL ABSTRACT INTERPRETATION OF LOGIC PROGRAMS [J].
MARRIOTT, K ;
SONDERGAARD, H ;
JONES, ND .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1994, 16 (03) :607-648
[28]   The Hoare Logic of Deterministic and Nondeterministic Monadic Recursion Schemes [J].
Mamouras, Konstantinos .
ACM TRANSACTIONS ON COMPUTATIONAL LOGIC, 2016, 17 (02)
[29]   A logical model for relational abstract domains [J].
Giacobazzi, R ;
Scozzari, F .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1998, 20 (05) :1067-1109
[30]   Monadic datalog and the expressive power of languages for web information extraction [J].
Gottlob, G ;
Koch, C .
JOURNAL OF THE ACM, 2004, 51 (01) :74-113