Implementing interactive languages, and the tradeoffs of interpreters, JIT compilers, and AOT compilers:
miniblog.
Related Posts
TIL Tcl has a notion of 'safe interpreters', a mode where you can run untrusted code in a sandbox: https://www.tcl.tk/man/tcl8.4/TclCmd/safe.htm
Not many programming languages have this, but it's way safer to include in the implementation than try to build as a userland library.
On storing ASTs in flat arrays for performance, and the relationship with bytecode interpreters:
Interpreters versus compilers as a spectrum, and a fun worked example of optimising Brainfuck: