Language designed for code generation. Solve difficult problems by adding new language features from within your code. Experimental? Metaprogramming?
Check out this Jupyter Notebook demonstrating code editing in Twocode!
- Python 3
easy_install https://github.com/MrCoft/twocode/tarball/master
twocode
Starts the interpreter.
Missing key features such as typing, advanced class fields, transpiler, native implementation.
Conventional code has a mostly 1-to-1 correspondence between source code and runtime instructions.
All language features abstract over this, but unless they are programmable, they are limited.
Sometimes the most readable code isn't fast and the fast code isn't readable.
Such problems are best modelled by setting up configuration objects, then building code from them.
Examples of problems solved using code generation:
- lexers, parsers
- GPU shaders
- symbolic math
- dataflow graphs
- script assets
think Lisp, write Python, compile Java