2017The Art Science and Engineering of ProgrammingOpen access

Open Programming Language Interpreters

Walter Cazzola, Albert Shaqiri

Open full text 8 citations

Abstract

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.

Open-access reader

About this research paper

What this paper is about

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.

Why it matters

OpenAlex reports 8 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

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.

Key concepts: Computer science, Interpreter, Programming language, Debugging, Adaptation (eye), Context (archaeology), Implementation, Reflection (computer programming)

Related papers

Back to paper searchBrowse research topicsOriginal source
Open Programming Language Interpreters — Research Paper | ScholarLens