What about code optimizers? Granted, these are typically applied after the code has been translated into some intermediate form. For example changing, "a = b + c + e;", into a series of machine op codes acting on selected registers. Basically, a different wff in a different language. During this process the optimizer may note that a previously computed sum, say c + e, is used in 20 other expressions and decides reusing this computed value is cheaper. It then changes the code using rules that guarantee the result of the new code doesn't change.Summary:: For the purposes of teaching topics in mathematical logic, how can we make examples based on a computer language?
I don't see that C has rules that define how to begin with some initial program and derive other programs.