Инструмент для удаления всех циклов в коде C - PullRequest
1 голос
/ 10 ноября 2010

Существует ли какой-либо инструмент для преобразования кода C с циклами (while, do-while, for) в код C с операторами goto вместо операторов зацикливания?

Я попробовал Clang. Я изменил код на IR и преобразовал его обратно, но код совершенно другой (больше строк, следующий за форматом SSA, ..), хотя логически означает то же самое.

Было бы лучше, если бы результирующий код выглядел более похожим на исходный исходный код. Если нет, я хотел бы узнать о других доступных вариантах.

1 Ответ

3 голосов
/ 10 ноября 2010

Это называется компилятором. Он не только превратит все эти аккуратные и упорядоченные циклические конструкции в вашем коде в инструкции перехода, но и позволит исходному коду остаться полностью неизменным и простым в обслуживании.

Специальный дополнительный бонус: у компиляторов есть приемы для ускорения вашего кода, поэтому он будет работать даже быстрее, чем если бы вы просто наивно конвертировали ваш C в ассемблер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...