Мне было интересно, существует ли программа для разрыва исходного кода до кода нижнего уровня, заменяя все циклы и вызовы функций оператором goto. Таким образом, это уменьшило бы код до объявления переменной/распределения кучи, оператора if, инструкции goto и логических/арифметических функций.C code decposer
Я думаю, что такая программа была бы полезна для проектирования виртуальной машины для интерпретации кода C.
Пример:
for(int a = 0; a < 100; a++){
printf("Hello");
}
станет
int a = 0;
if(!(a<100)){
goto endForLoopOne;
}
forLoopOne:
printf("Hello");
if(a<100){
a++;
goto forLoopOne;
}
endForLoopOne:
На самом деле я думаю, что такой трансформатор сделает более сложным ** реализовать код C. В моем начале класс компилятора довольно легко было скомпилировать операторы _for_ и _if_. Операторы _goto_ сложнее, потому что в общем случае они могут прыгать где угодно в функции, а не в четко определенных местах, таких как конец блока _if_. –