I didn't start writing C yesterday, and most of the things are just stuff I've learned over the years and seeing how other languages work and then just use what I know to try to program in a logical manner.
Also I've written a implementation of a scripting language (compiler and VM) before in similar fashion.
Nice, thanks. Traefik have a working go interpreter https://github.com/traefik/yaegi. Been meaning to go through the source code to borrow a few pointers(pun intended) as well.