6
views
0
recommends
+1 Recommend
0 collections
    0
    shares
      • Record: found
      • Abstract: found
      • Article: found
      Is Open Access

      Abstracting Definitional Interpreters

      Preprint
      , , ,

      Read this article at

      Bookmark
          There is no author summary for this article yet. Authors can add summaries to their articles on ScienceOpen to make them more accessible to a non-specialist audience.

          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 precisely matched in the abstract semantics, simply by virtue of the function call mechanism of the defining-language. The first approaches to achieve this property for higher-order languages appeared within the last ten years, and have since been the subject of many papers. These approaches start from a state-machine semantics and uniformly involve significant technical engineering to recover the precision of pushdown control flow. In contrast, starting from a definitional interpreter, the pushdown control flow property is inherent in the meta-language and requires no further technical mechanism to achieve.

          Related collections

          Most cited references28

          • Record: found
          • Abstract: not found
          • Conference Proceedings: not found

          Definitional interpreters for higher-order programming languages

            Bookmark
            • Record: found
            • Abstract: not found
            • Article: not found

            Tabled evaluation with delaying for general logic programs

              Bookmark
              • Record: found
              • Abstract: not found
              • Conference Proceedings: not found

              Monad transformers and modular interpreters

                Bookmark

                Author and article information

                Journal
                15 July 2017
                Article
                10.1145/3110256
                1707.04755
                33d841a2-f263-433c-beee-bfcce8d23b38

                http://arxiv.org/licenses/nonexclusive-distrib/1.0/

                History
                Custom metadata
                Proc. ACM Program. Lang. 1, ICFP, Article 12 (September 2017)
                cs.PL

                Comments

                Comment on this article