Interactive programming language minimizing reevaluations I'm looking for any programming language, DSL, library or pattern for live scripting but minimizing the expressions reevaluation.

Topological sorting provides non-revaluation of expressions.

Memoization provides a simple way of not re-evaluating but is a waste of memory.

A form of topological ordering can be achieved by maintaining (in each language object) a version number for each dependency but it does not seem to be easily composable/scriptable.

Which available tools would be the most suitable?

Thank you!

(I think the closest I've found might be https://www.shinoe.org/cameleon)
The specific CS topic resolving the question is:
Incremental computing
A detailed article explaining a related DSL is:
IceDust: Incremental and Eventual Computation of Derived Values in Persistent Object Graphs