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

      Waterfall: Primitives Generation on the Fly

      Preprint

      Read this article at

          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

          Modern languages are typically supported by managed runtimes (Virtual Machines). Since VMs have to deal with many concepts such as memory management, abstract execution model and scheduling, they tend to be very complex. Additionally, VMs have to meet strong performance requirements. This demand of performance is one of the main reasons why many VMs are built statically. Thus, design decisions are frozen at compile time preventing changes at runtime. One clear example is the impossibility to dynamically adapt or change primitives of the VM once it has been compiled. In this work we present a toolchain that allows for altering and configuring components such as primitives and plug-ins at runtime. The main contribution is Waterfall, a dynamic and reflective translator from Slang, a restricted subset of Smalltalk, to native code. Waterfall generates primitives on demand and executes them on the fly. We validate our approach by implementing dynamic primitive modification and runtime customization of VM plug-ins.

          Related collections

          Most cited references5

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

          The Jikes Research Virtual Machine project: Building an open-source research community

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

            Demystifying magic: high-level low-level programming

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

              Bootstrapping a self-hosted research virtual machine for JavaScript

                Bookmark

                Author and article information

                Journal
                1310.2741

                Programming languages
                Programming languages

                Comments

                Comment on this article