Open Programming Language Interpreters
Walter Cazzola (Universit\`a degli Studi di Milano, Italy), Albert, Shaqiri (Universit\`a degli Studi di Milano, Italy)

TL;DR
This paper introduces a novel framework for open programming language interpreters that enables dynamic adaptation and modification of interpreters' structure, behavior, and runtime state, supporting flexible language development.
Contribution
It presents the first reflective approach for a general framework supporting open interpreters, integrated into the Neverlang system, allowing full control and reuse across languages.
Findings
Prototype demonstrates feasibility of dynamic interpreter adaptation.
Supports various use cases like debugging and context-aware interpreters.
Addresses limitations of existing language-specific MOPs.
Abstract
Context: This paper presents the concept of open programming language interpreters and the implementation of a framework-level metaobject protocol (MOP) to support them. Inquiry: We address the problem of dynamic interpreter adaptation to tailor the interpreter's behavior on the task to be solved and to introduce new features to fulfill unforeseen requirements. Many languages provide a MOP that to some degree supports reflection. However, MOPs are typically language-specific, their reflective functionality is often restricted, and the adaptation and application logic are often mixed which hardens the understanding and maintenance of the source code. Our system overcomes these limitations. Approach: We designed and implemented a system to support open programming language interpreters. The prototype implementation is integrated in the Neverlang framework. The system exposes the…
Click any figure to enlarge with its caption.
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10Peer 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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
