MatchFixAgent: Language-Agnostic Autonomous Repository-Level Code Translation Validation and Repair
2509.16187v1
cs.SE, cs.LG
2025-09-23
Авторы:
Ali Reza Ibrahimzada, Brandon Paulsen, Reyhaneh Jabbarvand, Joey Dodds, Daniel Kroening
Резюме на русском
#### Контекст
Код перевод (code translation) — это процесс преобразования исходного кода из одного языка программирования (PL) в другой. Он широко используется для портирования программ, обновления старых кодов и адаптации исходного кода к новым средствам разработки. Гарантия функциональной эквивалентности перевода и исправление ошибок, если они возникают, является критически важной задачей в этой области. Несмотря на некоторые усилия в развитии автоматизированных систем для проверки эквивалентности и исправления кода, существуют значительные проблемы, связанные с нехваткой гибкости, высоким техническим затратам и недостаточной общностью. Эти проблемы порождают ложные срабатывания или недостаточно заметные исправления, что в итоге приводит к недостаточному качеству перевода. Эти проблемы мотивируют развитие универсальных, платформонезависимых и автоматизированных систем для проверки и исправления переводов кода.
#### Метод
"MatchFixAgent" — это новая гибридная система, основанная на больших языковых моделях (LLM), предназначенная для решения проблем функциональной эквивалентности и исправления ошибок в переводе кода. Основой системы является многоагентная архитектура, где каждый агент отвечает за отдельную субзадачу. Агент **Equivalence Validation Agent** выполняет подробный семантический анализ исходного кода и его перевода, предоставляя результаты для **Test Agent**, который генерирует и выполняет тесты для проверки эквивалентности. Если тесты завершаются неудачно, то **Repair Agent** пытается исправить ошибку в переводе, используя техники машинного обучения. Наконец, **Verdict Agent** синтезирует все результаты и принимает решение об эквивалентности. Эта система работает в платформонезависимой форме, позволяя работать с любыми парами языков программирования.
#### Результаты
Мы проверили MatchFixAgent на датасете, состоящем из 2,219 переводов из 6 пар языков программирования, собранных из 24 репозиториев GitHub с общим объемом более 900,000 строк кода. Мы сравнили нашу систему с четырьмя текущими методами проверки и исправления переводов. Результаты показали, что MatchFixAgent дает окончательные вердикты на 99.2% всех переводов, согласующиеся с результатами предыдущих методов на 72.8% случаев. Более интересно, когда результаты MatchFixAgent отличаются от ожиданий, 60.7% из них оказываются верными. Кроме того, мы показали, что MatchFixAgent может исправить 50.6% неэквивалентных переводов, в то время как предыдущие методы делали это только в 18.5% случаев. Это показывает, что наш подход значительно более эффективен и универсален.
#### Значимость
MatchFixAgent может применяться во многих областях, где
Abstract
Code translation transforms source code from one programming language (PL) to
another. Validating the functional equivalence of translation and repairing, if
necessary, are critical steps in code translation. Existing automated
validation and repair approaches struggle to generalize to many PLs due to high
engineering overhead, and they rely on existing and often inadequate test
suites, which results in false claims of equivalence and ineffective
translation repair. We develop MatchFixAgent, a large language model
(LLM)-based, PL-agnostic framework for equivalence validation and repair of
translations. MatchFixAgent features a multi-agent architecture that divides
equivalence validation into several sub-tasks to ensure thorough and consistent
semantic analysis of the translation. Then it feeds this analysis to test agent
to write and execute tests. Upon observing a test failure, the repair agent
attempts to fix the translation bug. The final (in)equivalence decision is made
by the verdict agent, considering semantic analyses and test execution results.
We compare MatchFixAgent's validation and repair results with four
repository-level code translation techniques. We use 2,219 translation pairs
from their artifacts, which cover 6 PL pairs, and are collected from 24 GitHub
projects totaling over 900K lines of code. Our results demonstrate that
MatchFixAgent produces (in)equivalence verdicts for 99.2% of translation pairs,
with the same equivalence validation result as prior work on 72.8% of them.
When MatchFixAgent's result disagrees with prior work, we find that 60.7% of
the time MatchFixAgent's result is actually correct. In addition, we show that
MatchFixAgent can repair 50.6% of inequivalent translation, compared to prior
work's 18.5%. This demonstrates that MatchFixAgent is far more adaptable to
many PL pairs than prior work, while producing highly accurate validation
results.
Ссылки и действия
Дополнительные ресурсы: