I was wondering if anyone is familiar with an abstract machine that is capable of executing Java bytecode. Note I'm looking for something I can extend, and by abstract machine, I don't mean the JVM, as I need to specify the semantics.
Specifically, I am looking for a way to keep track of what is going to be on the stack at a given point of time, without actually having to simulate all the instructions by myself. Does anyone know of a good framework for this?