Компиляторы, средства трансформации кода и анализаторы программ вынуждены преобразовывать направленные ациклические графы исходных программ в более удобное для дальнейшей работы промежуточное представление. Этот процесс достаточно нетривиален для небиективных отображений. Основная причина - присутствие конструкций, изменяющих граф потока управления программы, таких как лямбда-функции, выражения-утверждения и т.п. Для правильной трансформации программы необходимо учитывать эти изменения и корректировать выражения, зависящие от них. В работе представлен алгоритм трансляции направленных ациклических графов программ в производные промежуточные представления с учетом изменений графа потока управления. Метод основан на поиске в глубину с многоэтапной обработкой синтаксических ветвей. Такой подход позволяет устранить трансляцию в тех случаях, когда она не является необходимой, что снижает использование системных ресурсов. В ходе тестирования было отмечено, что производительность решения зависит скорее от характерист