The Design and Implementation of an Extensible System Meta-Programming Language
Ronie Salgado

TL;DR
This paper introduces an extensible system meta-programming language that redefines the compilation process as interpretation, enabling end-users to modify and extend the compiler within the same environment.
Contribution
It presents a novel approach to compiler design by exposing the full compilation pipeline through a meta-object protocol, allowing self-implementation and extensibility.
Findings
Successfully bootstrapped a self-compiling Sysmel language
Demonstrated the feasibility of an interpreted compilation pipeline
Enabled end-user extensibility of the compiler environment
Abstract
System programming languages are typically compiled in a linear pipeline process, which is a completely opaque and isolated to end-users. This limits the possibilities of performing meta-programming in the same language and environment, and the extensibility of the compiler itself by end-users. We propose a novel redefinition of the compilation process in terms of interpreting the program definition as a script. This evaluation is performed in an environment where the full compilation pipeline is implemented and exposed to the user via a meta-object protocol, which forms the basis for a meta-circular definition and implementation of the programming language itself. We demonstrate the feasibility of this approach by bootstrapping a self-compiling implementation of Sysmel, a static and dynamic typed Smalltalk and C++ inspired programming language.
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
TopicsAdvanced Software Engineering Methodologies · Distributed and Parallel Computing Systems · Model-Driven Software Engineering Techniques
