Sometimes when thinking on PL design, I worry about efficiency. Considering the num of successful AST-walking interpreters, it seems silly.
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.
Implementing interactive languages, and the tradeoffs of interpreters, JIT compilers, and AOT compilers:
On storing ASTs in flat arrays for performance, and the relationship with bytecode interpreters: