-
Notifications
You must be signed in to change notification settings - Fork 2
Generative metaprogramming
The selection of languages you are working with is not a problem until you know how to slide between the model of every language or platform.
Some problems you will have with low-level languages like C++, which have no automatic memory and garbage collection. It will trouble you a most, as you will be required to implement it yourself. In case you really need a very effective engine for resource-constrained systems (embedded, especially microcontroller based), you have no choices.
But there is one choice: cross-development system contains host and target. The host is unlimited in resources so you can do anything up to big data processing in grids. Target is an extra limited device with few Kb(!) of RAM. So you can’t run interpreter on a target, besides maybe bytecode.interpreter (see bcx).
The only way in such configuration is embedded C code generation, and compiling it to the target.
But you have the freedom to move between high-level system specification and low-level C code representation which will be translated into .c files as is.
- Python
- metaL
- Java / Android
- Go
- JavaScript
- embedded C/C++
- LLVM cross-compiler
- ungodly C#
- Delphi legacy