Open Programming Language Interpreters
Walter Cazzola, Albert Shaqiri · The Art Science and Engineering of Programming · 2017
Context: This paper presents the concept of open programming language interpreters, a model to support them and a prototype implementation in the Neverlang framework for modular development of programming languages. Inquiry:We address the problem of dynamic interpreter adaptation to tailor the interpreter's behaviour on the task to be solved and to introduce new features to fulfil unforeseen requirements.Many languages provide a meta-object protocol (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 a model and implemented a prototype system to support open programming language interpreters.The implementation is integrated in the Neverlang framework which now exposes the structure, behaviour and the runtime state of any Neverlang-based interpreter with the ability to modify it.Knowledge: Our system provides a complete control over interpreter's structure, behaviour and its runtime state.The approach is applicable to every Neverlang-based interpreter.Adaptation code can potentially be reused across different language implementations.Grounding: Having a prototype implementation we focused on feasibility evaluation.The paper shows that our approach well addresses problems commonly found in the research literature.We have a demonstrative video and examples that illustrate our approach on dynamic software adaptation, aspect-oriented programming, debugging and context-aware interpreters.Importance: Our paper presents the first reflective approach targeting a general framework for language development.Our system provides full reflective support for free to any Neverlang-based interpreter.Rather than substituting other approaches, we believe our system can be used as a complementary technique in situations where other approaches present serious limitations.