I am fairly ignorant about theoretical computer science.
Recently on Wikipedia I learned about a variant of Turing machines that actually generate decision trees instead of decision paths of the classical Turing machine. This new type of Turing machines are proven to be functionally equivalent of classical Turing machines. The article notes that such machines could be in theory more efficient than the classical ones. There ceases the interest of a theoretician.
I am not very sure about the theoretical soundness of my extension of this idea but I note it here nevertheless.
Loop Unrolling is a well-known strategy in Parallel computing. However, my readers know it very well that I am never against loops.
I don’t like the idea of decisions made by programs unless forced by environment.
If we evolve into an era of millions of simple (probably load and store) microprocessor cores on a chip, we can eliminate a lot of decisions. That means, no matter what the dynamic state of the program is, all the possible paths (or at least, breadth first paths) will be distributed as code to each core. Each core will have its stack and data (and global and text) segments.
There could be an “aha” trigger that finally selects a computation to be output.
Also, there could be other triggers (like need to I/O physically) that may trigger a “state swap” out of cores.
It is quite interesting from practical point of view.
It makes programming very simple to debug.
It is like our dreams – very less logic and a lot of loops.
Only when we wake up (“aha!”) or need an I/O (like hearing child crying or an earthquake sensed) we wake up and take a path that makes sense.
What do you say?