Я хочу разработать инструмент, который выполняет определенные оптимизации в программе на основе структуры программы. Например, скажем, я хочу определить if-else внутри цикла, и мой инструмент должен переписать его в два цикла.
Я хочу, чтобы инструмент мог переписывать программы из широкого спектра языков, например, Java, C ++, Python, Javascript и т. Д.
Я изучаю возможность использования GraalVM для этой цели, чтобы выступать в качестве общей платформы, в которой я могу реализовывать одинаковые оптимизации для разных языков.
Имеет ли GraalVM общее промежуточное представление (что-то вроде LLVM IR)? Я посмотрел на документацию, но я не уверен, с чего начать. Есть указатели?
Примечание: Я не ищу взаимодействия между языками. Вы можете предположить, что программы, которые я хочу переписать, написаны на одном языке; язык может отличаться для разных программ.