Exceptions all Over the Shop: Modular, Customizable, Language-independent Exception Handling LayerResearch Paper
The introduction of better abstractions is at the forefront of research and practice. Among many approaches, domain-specific languages are subject to an increase in popularity due to the need for easier, faster and more reliable application development that involves programmers and domain experts alike. To smooth the adoption of such a language-driven development process, researchers must create new engineering techniques for the development of programming languages and their ecosystems. Traditionally, programming languages are implemented from scratch and in a monolithic way. Conversely, modular and reusable language development solutions would improve maintainability, reusability and extensibility. Many programming languages share similarities that can be leveraged to reuse the same language feature implementations across several programming languages; recent language workbenches strive to achieve this goal by solving the language composition and language extension problems. Yet, some features are inherently complex and affect the behavior of several language features. Most notably, the exception handling mechanism involves varied aspects, such as the memory layout, variables, their scope, up to the execution of each statement that may cause an exceptional event—e.g., a division by zero. In this paper, we propose an approach to untangle the exception handling mechanism dubbed the exception handling layer: its components are modular and fully independent from one another, as well as from other language features. The exception handling layer is language-independent, customizable with regards to the memory layout and supports unconventional exception handling language features. To avoid any assumptions with regards to the host language, the exception handling layer is a stand-alone framework, decoupled from the exception handling mechanism offered by the back-end. Then, we present a full-fledged, generic Java implementation of the exception handling layer. The applicability of this approach is presented through a language evolution scenario based on a Neverlang implementation of JavaScript and LogLang, that we extend with conventional and unconventional exception handling language features using the exception handling layer, with limited impact on their original implementation.
Mon 23 OctDisplayed time zone: Lisbon change
09:00 - 10:30 | Language implementationSLE at Room II Chair(s): Thomas Degueule CNRS, LaBRI This session will start at 08:50 with a welcome and general announcements from the Conference General Chair. | ||
09:00 30mTalk | Exceptions all Over the Shop: Modular, Customizable, Language-independent Exception Handling LayerResearch Paper SLE DOI | ||
09:30 30mTalk | An Executable Semantics for Faster Development of Optimizing Python CompilersResearch Paper SLE Olivier Melancon Université de Montréal, Marc Feeley Université de Montréal, Manuel Serrano Inria; University of Côte d'Azur DOI | ||
10:00 30mTalk | Adaptive Structural Operational SemanticsResearch Paper SLE Gwendal Jouneaux University of Rennes; Inria; IRISA, Damian Frölich University of Amsterdam, Olivier Barais University of Rennes; Inria; CNRS; IRISA, Benoit Combemale University of Rennes, Inria, CNRS, IRISA, Gurvan LE GUERNIC DGA MI & Université de Rennes 1, Gunter Mussbacher McGill University, L. Thomas van Binsbergen University of Amsterdam DOI Pre-print |