Virtual Domain Specific Languages via Embedded Projectional Editing
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 OctDisplayed time zone: Lisbon change
16:00 - 17:30 | |||
16:00 30mTalk | Virtual Domain Specific Languages via Embedded Projectional Editing GPCE | ||
16:30 30mTalk | 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 30mTalk | 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 |