Differential execution is a strategy for changing the flow of your code based on external events. This is usually done by manipulating a data structure of some kind to chronicle the changes. This is mostly used in graphical user interfaces, but is also used for things like serialization, where you are merging changes into an existing "state."
The basic flow is as follows:
Start loop:for each element in the datastructure: if element has changed from oldDatastructure: copy element from datastructure to oldDatastructure execute corresponding subroutine (display the new button in your GUI, for example)End loop:Allow the states of the datastructure to change (such as having the user do some input in the GUI)
The advantages of this are a few. One, it is separationof the execution of your changes, and the actualmanipulation of the supporting data. Which is nice formultiple processors. Two, it provides a low bandwidth methodof communicating changes in your program.