Parametric Programming – an equational approach to OO and beyond
billwadge.wordpress.com
billwadge.wordpress.com
The technique converts an optimization solution into a function of its parameters, so instead of a (re-)solving an optimization problem each time the parameters change, one only needs to evaluate a function.
The semantics here are a bit different though. The idea is that a "scheme" has a way to be instantiated, and then when you use an output, it's as if the equations for that output are substituted in. PureData uses a message passing style instead.
There is some prior art -- take a look at the work by Alexey Radul and Gerald Sussman on propagator networks. They were also interested in partial information and networks that could have cycles, so they solve problems with how to update information in nodes.
Another similar thing is Verilog, where each module has inputs and outputs you connect together. (For handling cycles, you use a clock and registers.)
There's also OCaml "functors," which seem somewhat similar. Pay no attention to the name -- a "functor" is a module parameterized by another module. The "schemes" seem to be like a functor in that you can pass in specific definitions, and then the "outputs" are members of the resulting module.
His first example is an applicative: parallel lines of evaluation into a result.
His second example I believe is the Either monad, if he takes ';' to be a sequencing operation.
His quad example is a monad with a syntax for defining an instance.
And so on...
Interesting read regardless.