FrTime (aka "Father Time") is a Scheme / Racket dialect that automatically updates outputs that depend on time-varying inputs. It does this by changing the program to monitor what signals are used during the evaluation of a given expression and constructing a dynamic dependency graph from that.
Then, it updates the inputs based on events and those updates are propagated through the dependency graph to update the outputs.
Links: