ManyDSL: A Host for Many Languages
Piotr Danilewski (1, 2, 3), Philipp Slusallek (1, 2, 4), ((1) Saarland University, Germany, (2) Intel Visual Computing Institute,, Germany, (3) Theoretical Computer Science, Jagiellonian University, Poland,, (4) Deutsches Forschungszentrum f\"ur K\"unstliche Intelligenz, Germany)

TL;DR
ManyDSL introduces a flexible metamorphic language host that dynamically modifies syntax and semantics, enabling seamless integration and switching of multiple domain-specific languages within a single application.
Contribution
It presents a novel approach using Syntax-Directed Execution for dynamic grammar creation and language switching, enhancing flexibility in multi-DSL applications.
Findings
Supports dynamic creation and switching of grammars
Simplifies connecting actions across languages
Enables generating specialized code with lambda and staging
Abstract
Domain-specific languages are becoming increasingly important. Almost every application touches multiple domains. But how to define, use, and combine multiple DSLs within the same application? The most common approach is to split the project along the domain boundaries into multiple pieces and files. Each file is then compiled separately. Alternatively, multiple languages can be embedded in a flexible host language: within the same syntax a new domain semantic is provided. In this paper we follow a less explored route of metamorphic languages. These languages are able to modify their own syntax and semantics on the fly, thus becoming a more flexible host for DSLs. Our language allows for dynamic creation of grammars and switching languages where needed. We achieve this through a novel concept of Syntax-Directed Execution. A language grammar includes semantic actions that are pieces…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Model-Driven Software Engineering Techniques · Service-Oriented Architecture and Web Services
