drracket中有标签,转到,跳转命令的包吗?
Control包会出现以下错误:
(let ([x 1])
(let/ec return
(begin/goto
(label l1)
(set! x (+ x 1))
(when (= x 10000000)
(return x))
(goto l1)
2)))
goto:undefined;
无法引用未定义的标识符
需要在LLVM IR中模拟标签,goto / jump以运行代码,因此不能使用循环重写。
答案 0 :(得分:3)
首先:很明显,soegaard的控制包无法正常工作,而且我猜测它是因为语法系统的更新已经发生在最近几年。
第二:如果你正在模拟LLVM,你就不需要标签和了。只需将代码分解为基本块,并将每个基本块建模为一个函数。然后每个goto变成一个函数调用。你绝对可以自动化。
很抱歉要简洁。如果您需要更多详细信息,请与我们联系。