MELT - a Translated Domain Specific Language Embedded in the GCC Compiler
Basile Starynkevitch (CEA, LIST)

TL;DR
This paper introduces MELT, a Lisp-like domain-specific language embedded in GCC, enabling easier extension of the compiler through high-level scripting and translation to C, demonstrating the feasibility of augmenting large legacy software.
Contribution
The paper presents MELT, a new DSL that simplifies GCC plugin development by providing high-level features and seamless translation to C, improving extensibility of large software systems.
Findings
MELT enables easier development of GCC plugins.
High-level features facilitate complex customizations.
Large legacy software can be extended with tailored DSLs.
Abstract
The GCC free compiler is a very large software, compiling source in several languages for many targets on various systems. It can be extended by plugins, which may take advantage of its power to provide extra specific functionality (warnings, optimizations, source refactoring or navigation) by processing various GCC internal representations (Gimple, Tree, ...). Writing plugins in C is a complex and time-consuming task, but customizing GCC by using an existing scripting language inside is impractical. We describe MELT, a specific Lisp-like DSL which fits well into existing GCC technology and offers high-level features (functional, object or reflexive programming, pattern matching). MELT is translated to C fitted for GCC internals and provides various features to facilitate this. This work shows that even huge, legacy, software can be a posteriori extended by specifically tailored 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.
Taxonomy
TopicsLogic, programming, and type systems · Formal Methods in Verification · Model-Driven Software Engineering Techniques
