I am trying to create an interpreter.
My thoughts are to parse the code, transform it into opcodes (very similar to bytecode, msil etc) and for now to create an interpreter executor and later a JIT engine.
I am currently designing the memory manager and the type system.
I have created a simple memory manager that supports some basic datatypes (integer, float, char, string, array). I can successfully allocate the memory and use it. But I am not satisfied with it. I would like to create a garbage collector, make it object oriented and extend it as much as I can.
I am looking for suggestions, sites, books in order to learn more on this subject.
Suggestion: Keep it small. Meaning don't try to do everything that mature interpreters do. Creating a full interpreter is a lot of work. Instead focus on a few small topic that interest you. It looks like you are interested in memory management, so play around with stack, heap, and symbol tables.
References: