Плисс О.А., Волошин К.Д.
Количество страниц: 9
Язык: Русский
Формат: PDF / RAR
Формат файла: RAR
Некоторые из языков программирования придерживаются доктрины радикального устранения неструктурных операторов [1], в том числе и операторов безусловных локальных переходов (GOTO). При конвертации программ в такие языки возникает проблема моделирования неструктурных операторов посредством структурных. При этом обычно требуется сохранить структуру программы возможно более близкой к исходной.
К сожалению, операторы GOTO способны интерферировать с содержащимися в исходной программе структурными конструкциями (блоками, условными и циклическими операторами, операторами выбора по метке). Логика работы таких операторов оказывается нарушенной, их невозможно сохранить в прежнем виде.
Нашей целью является устранение всех операторов GOTO и сохранение максимально возможного числа структурных операторов.
Для простоты будем предполагать, что все структурные операторы входного языка могут быть прямо транслированы в соответствующие структурные операторы выходного языка. Например, в качестве входного языка можно рассматривать Си [2], а в качестве выходного — Java [3]. Тем не менее предлагаемый алгоритм с минимальными вариациями применим для большинства современных языков, в том числе не столь синтаксически близких.