A Module System for Domain-Specific Languages
Ethan K. Jackson

TL;DR
This paper introduces a simple, succinct, and composable module system for LP-based domain-specific languages, facilitating easier creation, reuse, and composition of DSLs, demonstrated through industrial applications.
Contribution
It presents a complete module system for LP that enhances DSL construction, reuse, and composition, with practical implementation and industrial case studies.
Findings
Implemented in the FORMULA language.
Used to build Windows 8 device drivers via DSLs.
Supports language, compiler, and program level composition.
Abstract
Domain-specific languages (DSLs) are routinely created to simplify difficult or specialized programming tasks. They expose useful abstractions and design patterns in the form of language constructs, provide static semantics to eagerly detect misuse of these constructs, and dynamic semantics to completely define how language constructs interact. However, implementing and composing DSLs is a non-trivial task, and there is a lack of tools and techniques. We address this problem by presenting a complete module system over LP for DSL construction, reuse, and composition. LP is already useful for DSL design, because it supports executable language specifications using notations familiar to language designers. We extend LP with a module system that is simple (with a few concepts), succinct (for key DSL specification scenarios), and composable (on the level of languages, compilers, and…
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.
