SPLASH 2023
Sun 22 - Fri 27 October 2023 Cascais, Portugal
Mon 23 Oct 2023 09:00 - 09:30 at Room II - Language implementation Chair(s): Thomas Degueule

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 Oct

Displayed 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
30m
Talk
Exceptions all Over the Shop: Modular, Customizable, Language-independent Exception Handling LayerResearch Paper
SLE
Walter Cazzola Università degli Studi di Milano, Luca Favalli Università degli Studi di Milano
DOI
09:30
30m
Talk
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
30m
Talk
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