TL;DR
This paper explores how definitional interpreters, especially in monadic style, serve as a natural foundation for abstract interpretation, inheriting properties like pushdown control flow without additional engineering.
Contribution
It demonstrates that definitional interpreters inherently support pushdown control flow in abstract interpretation, simplifying the design of precise higher-order language analyses.
Findings
Abstract definitional interpreters inherit pushdown control flow properties.
They provide a natural basis for various abstract semantics and symbolic executions.
No additional mechanisms are needed to achieve pushdown precision.
Abstract
In this functional pearl, we examine the use of definitional interpreters as a basis for abstract interpretation of higher-order programming languages. As it turns out, definitional interpreters, especially those written in monadic style, can provide a nice basis for a wide variety of collecting semantics, abstract interpretations, symbolic executions, and their intermixings. But the real insight of this story is a replaying of an insight from Reynold's landmark paper, Definitional Interpreters for Higher-Order Programming Languages, in which he observes definitional interpreters enable the defined-language to inherit properties of the defining-language. We show the same holds true for definitional abstract interpreters. Remarkably, we observe that abstract definitional interpreters can inherit the so-called "pushdown control flow" property, wherein function calls and returns are…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
