Any computer program can be presented in the form of an equation. Specifically, you define a function named step such that step (s, input) = (s2, output) where s and s2 are “states”, i.e., mathematical representations of the RAM, cache and registers.
To run the computer program, you apply step to some starting state, yielding (s2, output), then you apply step to s2, yielding (s3, output2), then apply step to s3, and so on for billions of repetitions.
Another reply to your question asserts that equations cannot handle non-determinism. Untrue. To handle it, all we need to do is add another argument to step, rand say, that describes the non-deterministic influences on the program. This is routinely done in formalisms for modelling causality, e.g., the structural equation models used in economics.
So, in summary, your question has some implicit assumptions that would need to be made explicit before I can answer.
Any computer program can be presented in the form of an equation. Specifically, you define a function named
step
such that step (s, input) = (s2, output) where s and s2 are “states”, i.e., mathematical representations of the RAM, cache and registers.To run the computer program, you apply
step
to some starting state, yielding (s2, output), then you apply step to s2, yielding (s3, output2), then apply step to s3, and so on for billions of repetitions.Another reply to your question asserts that equations cannot handle non-determinism. Untrue. To handle it, all we need to do is add another argument to step,
rand
say, that describes the non-deterministic influences on the program. This is routinely done in formalisms for modelling causality, e.g., the structural equation models used in economics.So, in summary, your question has some implicit assumptions that would need to be made explicit before I can answer.