goto和come来一样强大吗?

Thr*_*eFx 1 language-agnostic goto comefrom

我只是想知道讨厌的goto陈述是否和陈述一样强大comefrom?在我看来,他们的能力可能相等,但我并不完全确定.是否有任何形式证明它们同样强大(或不同等强大)?


对于任何从未听说过的人:comefrom有点颠倒过来goto:

    comefrom doom;
    WriteLine("I will never stop executing!");
doom:
Run Code Online (Sandbox Code Playgroud)

n. *_* m. 5

comefrom比...严格更强大goto.

每个程序goto都可以通过机械方式转换为等效的comefrom程序,并通过goto相应的方式替换每个程序comefrom.

反之则不然.这个程序没有goto唯一的等价物:

  doom:

  comefrom doom;
  WriteLine("I will never stop executing!");
  goto doom;

  comefrom doom;
  WriteLine("Guess my time has come!");
Run Code Online (Sandbox Code Playgroud)

此程序打印第一个短语未知次数,然后是第二个短语,然后退出.使用缺乏的传统编程语言无法实现这种非确定性comefrom.