Информация об изменениях

Сообщение goto в структурный код от 14.10.2021 8:34

Изменено 14.10.2021 8:36 vsb

goto в структурный код
Имеется код вида
instr1
if (cond1) goto L1
instr2
goto L2:
L1:
instr3
L2:
instr4
L3:
if (cond2) goto L4
instr5
goto L3
L4:
instr6


Который соответствует коду

instr1
if (!cond1) {
  instr2
} else {
  instr3
}
instr4
while (!cond2) {
  instr5
}
instr6


Собственно задача — из первого кода получить второй код (предполагая, что это возможно).

Как правильно подступиться к такой задаче?
goto в структурный код
Имеется код вида
instr1
if (cond1) goto L1
instr2
goto L2:
L1:
instr3
L2:
instr4
L3:
if (cond2) goto L4
instr5
goto L3
L4:
instr6


Который соответствует коду

instr1
if (!cond1) {
  instr2
} else {
  instr3
}
instr4
while (!cond2) {
  instr5
}
instr6


Собственно задача — из первого кода получить второй код (предполагая, что это возможно).

Помимо указанных конструкций может быть break/continue в цикле.

Как правильно подступиться к такой задаче?