SPLASH 2023
Sun 22 - Fri 27 October 2023 Cascais, Portugal
Mon 23 Oct 2023 16:00 - 16:30 at Room XV - Session 4 Chair(s): Casper Bach Poulsen

Domain Specific Languages (DSLs) can be implemented as either internal DSL, i.e. essentially a library in a host general-purpose programming language (GPL), or as external DSL which is a stand-alone language unconstrained in its syntax. This choice implies an inherent trade-off between a limited syntactic and representational flexibility (internal DSLs), or an involved integration with GPLs and the need for a full stack of tools from a parser to a code generator (external DSLs).

We propose a solution which addresses this problem by representing a subset of a GPL - from simple code patterns to complex API calls - as GUI widgets in a hybrid editor. Our approach relies on matching parametrized patterns against the GPL program, and displaying the matched parts as dynamically rendered widgets. Such widgets can be interpreted as components of an external DSL. Since the source code is serialized as GPL text without annotations, there is no DSL outside the editor - hence the term ‘virtual’ DSL.

This solution has several advantages. The underlying GPL and the virtual DSL can be mixed in a compositional way, with zero cost of their integration. The project infrastructure does not need to be adapted. Furthermore, our approach works with mainstream GPLs like Python or JavaScript.

To lower the development effort of such virtual DSLs, we also propose an approach to generate patterns and the corresponding text-only GUI widgets from pairs of examples.

We evaluate our approach and its implementation on use cases from several domains. A live demo of the system can be accessed at https://puredit.korz.dev/ and the source code with examples at https://github.com/niklaskorz/puredit/.

Mon 23 Oct

Displayed time zone: Lisbon change

16:00 - 17:30
Session 4GPCE at Room XV
Chair(s): Casper Bach Poulsen Delft University of Technology
16:00
30m
Talk
Virtual Domain Specific Languages via Embedded Projectional Editing
GPCE
Niklas Korz Alugha GmbH, Artur Andrzejak Heidelberg University
16:30
30m
Talk
Unleashing the Power of Implicit Feedback in Software Product Lines: Benefits ahead
GPCE
Raul Medeiros University of the Basque Country (UPV/EHU), Oscar Diaz University of the Basque Country, Spain, David Benavides Universidad de Sevilla
17:00
30m
Talk
Automatically Generated Supernodes for AST Interpreters Improve Virtual-machine Performance
GPCE
Matteo Basso Università della Svizzera italiana (USI), Switzerland, Daniele Bonetta Oracle Labs, Walter Binder USI Lugano