3 ms·
Encoding is not the same as execution because you only encode the program and its input. You don't know what the output is unless you execute it on the FRACTRA
by romwell 5y ago
Encoding is not the same as execution because you only encode the program and its input.
You don't know what the output is unless you execute it on the FRACTRAN machine; the thing that gets you the output is execution.
Note that execution is not a function that gives a finite output, as some programs never halt, or never return an output at all.
So while you can always encode, you don't always get an output from that encoding (like in cases where the Turing machine never halts).
TL;DR: encoding is a function (finite #of bits -> finite #of bits). Execution is a function (finite #of bits -> ???), where ??? can be a finite or infinite sequence, or an empty set, and there is no way to tell which it is other than executing, which may take infinite time (see: Halting problem).