每个人都知道 Dijkstra 给编辑的信:转到被认为有害的声明(也在这里.html成绩单和这里.pdf)。我想知道是否有人试图通过添加任何其他语言扩展或开发允许 goto 的语言来找到一种使用 goto 可重用和可维护且无害的代码的方法。
我问这个问题的原因是我突然想到,用汇编语言编写的代码经常使用 goto 和全局变量来使程序在有限的空间内运行良好。Atari 2600有 128 字节的 ram,程序是从 ROM 盒加载的。在这种情况下,最好使用非结构化编程并充分利用这允许为程序充分利用非常有限的空间的自由。
当你将它与今天没有使用 goto 编程的游戏进行比较时,游戏会占用更多空间。
然后我突然想到,如果通过一些规则或其他语言更改来支持这一点,也许可以使用 goto 进行编程,那么可以减少或消除 goto 的负面影响。有没有人试图通过创建一种允许 goto 无害的语言或遵循的一些规则来寻找一种方法来使 goto 不被认为是有害的。
如果没有人寻找一种以无害方式使用 goto 的方法,那么也许我们仅仅基于这篇论文就不必要地采用了结构化编程?也许还有另一种解决方案允许使用 goto 而没有不利的一面。