The invention relates to optimizing
software code execution during state transitions. The
system handles changes in execution context using differential
rule checking techniques. For instance, when a thread executing in a
data processing system changes state, its new state may be subject to different rules than its previous state. To enforce these rules, the thread may be associated with
software code that causes certain restrictions, such as memory restrictions, to be applied to the thread. In an interpretive environment, this can be implemented by detecting a state transition in an active thread, and responding to the state transition by associating the thread with a
dispatch table that reflects its state change. The
dispatch table may cause the thread to be associated with code that enforces those restrictions. In one example, different dispatch tables can be provided, each table reflecting a different state of a thread, and each causing a thread to be subject to different restrictions. In another example, the same
dispatch table can be rewritten to accommodate the changed state of the thread.