相关疑难解决方法(0)

自动GOTO清除算法

我听说理论上可以用图灵完备语言表达任何控制流,只使用结构化编程结构(条件,循环和循环中断,以及子程序调用),而不需要任何GOTO语句.有没有办法使用该理论自动重构包含GOTOs代码的代码?

假设我在一个简单的命令式语言中有一个任意的单个子例程,比如C或Pascal.我还有一个解析器,可以验证此子例程是否有效,并从中生成一个抽象语法树.但是代码包含GOTOs和标签,它们可以向前或向后跳转到任意点,包括进入或退出条件或循环块,但不包括在子程序本身之外.

是否有一种算法可以使用此AST并将其重新编写为新代码,该代码在语义上相同,但不包含任何标签或GOTO语句?

language-agnostic algorithm goto

12
推荐指数
2
解决办法
1660
查看次数

标签 统计

algorithm ×1

goto ×1

language-agnostic ×1