Wishlist for Meta Programming and Language-Oriented Programming
- Language features
- The core of the language should comprise of a transformation system and proof system which can provably covert, reduce or transform a given representation of binery or textual strings or graphs into other representations in the most efficient and effective way with minimal phases and rescans. This core system will be used for lexing, parsing, interpreting, JIT and AOT compiling. This will serve as the minimal core.
- Each phase will use the same DSL which would be a set of transformation rules and proofs to make the system simple and easy to learn.
- The DSL will be minimal but should be extensible by creating more complicated reusable libraries.
- Lexing and parsing would apply a set of rules to a input string of binery or text data which will be converted into a graph which represent the AST. Optimisation would be applying another set of rules to rewrite the AST into a optimised representation. This will furthe