Компиляторы, средства трансформации кода и анализаторы программ вынуждены преобразовывать направленные ациклические графы исходных программ в более удобное для дальнейшей работы промежуточное представление. Этот процесс достаточно нетривиален для небиективных отображений. Основная причина - присутствие конструкций, изменяющих граф потока управления программы, таких как лямбда-функции, выражения-утверждения и т.п. Для правильной трансформации программы необходимо учитывать эти изменения и корректировать выражения, зависящие от них. В работе представлен алгоритм трансляции направленных ациклических графов программ в производные промежуточные представления с учетом изменений графа потока управления. Метод основан на поиске в глубину с многоэтапной обработкой синтаксических ветвей. Такой подход позволяет устранить трансляцию в тех случаях, когда она не является необходимой, что снижает использование системных ресурсов. В ходе тестирования было отмечено, что производительность решения зависит скорее от характерист
Язык оригиналарусский
Страницы (с-по)271-275
Журнал ПРОЦЕССЫ УПРАВЛЕНИЯ И УСТОЙЧИВОСТЬ
Том7
Номер выпуска1
СостояниеОпубликовано - 2020
Опубликовано для внешнего пользованияДа

    Области исследований

  • compilation, Intermediate Representation, static analysis, translation, компиляция, промежуточное представление, статический анализ, трансляция

ID: 78577608