I was reading about partial evaluation and I wanted to learn more about it, so I decided to write my own implementation of it. First, I wrote an interpreter for a lisp dialeact. Then, I wrore the partial evaluator levaraging the interpreter/evaluator. I would like to continue to learning more about partial evaluation.
More advanced uses of partial evaluation can allow for generation of compilers, or even compiler generators, just from an interpreter (ie. no need to write a new compiler from scratch if you have an exisisting interpreter). A concrete goal I have is to use these techniques to compile from my lisp implemtation to ruby. An eventual long term goal is to create a ruby to c compiler.