1. 34

Given a tower of interpreters, i.e., a sequence of multiple interpreters interpreting one another as input programs, we aim to collapse this tower into a compiler that removes all interpretive overhead and runs in a single pass. In the real world, a use case might be Python code executed by an x86 runtime, on a CPU emulated in a JavaScript VM, running on an ARM CPU. Collapsing such a tower can not only exponentially improve runtime performance, but also enable the use of base-language tools for interpreted programs, e.g., for analysis and verification. In this paper, we lay the foundations in an idealized but realistic setting.

by Nada Amin and Tiark Rompf

Videos

Related

  1.  

  2. 4

    Would add this classic, with a dad joke title to boot: A Lisp through the Looking Glass

    1. 3

      This counts as one of the most beautiful ideas I’ve ever encountered, but I feel somewhat stuck in actually applying it. I probably need to sit with it for awhile longer.

      1. 3

        An easier starting point might be meta circular evaluators, https://lobste.rs/s/dydfkh/william_byrd_on_most_beautiful_program

        The enable one to build a thing-b that is almost like thing-a by delegating to thing-a. Amazingly powerful.

        And then Abstract Interpretation