1. A method for simulating discrete events comprising the steps of: compiling source code having at least one class into byte code, the at least one class having at least one object; rewriting the byte code to modify the at least one class to include simulation time semantics, said step of rewriting capable of creating at least one modified class; and executing the rewritten byte code within a virtual machine that interacts with a kernel, said step of executing capable of simulating discrete events.