Tutorial part 4: Adding JIT-compilation to a toy interpreter — libgccjit 17.0.0 (experimental ) documentation
It’s a stack-based interpreter, and is intended as a (very simple) example of the kind of bytecode interpreter seen in dynamic languages such as Python, Ruby etc.