Every control structure in C++ is equivalent to either a goto or jnz plus some syntactic sugar.
This is almost true, but I see one important exception: the exception machinery in C++ (that is the compilation of throw and catch C++ statements) is not exactly a goto (and neither is longjmp in C). And of course, any (method or function) call and return is not exactly a goto neither. Exceptions,calls and returns also change the stack pointer.
I would also notice that computed goto (i.e. the goto *p; GNU extension of C) is compiled as an indirect jump.
A more interesting concept is continuation Regards
If IBM had used a 32 bit processor then Microsoft would likely have failed.
But that would have made a better world... Microsoft succeeded not on technical grounds, but because of good lawyers.
I was suggesting a real operating system and that would have meant something better than QDOS (ie the first MSDOS).
I believe the biggest mistake was IBM using an Intel8088, instead of a Motorola68000.
Imagine for a moment what would have happened if IBM choose in the early 1980s a 32 bits processor for the first successful Personal Computer!
What is scary (or at least very sad) today is that very probably no manager would let a few brilliant programmers to develop their own system during a couple of years: in academia, publishing is much more important that working on a big software system, and in industrial R&D, one could no more work for a couple of years on a brand new software.
Current managers would look with scare at their spreadsheet and would not let that kind of things happen anymore in 2009, and I still think it is really a pity, and we could get some really innovative systems if R&D was managed differently today.
J.Pitrat does know (as I do) Godel's theorem, and did wrote some interesting pages on the relation between Godel's theorem and his view of AI.
J.Pitrat also explains how his CAIA system is in practice able to detect most of the looping situations, when it is stuck.
To stay youthful, stay useful.