CrossTL: A Universal Programming Language Translator with Unified Intermediate Representation

2508.21256v1 cs.PL, cs.CL, cs.GR, 68N20, 68N15, 68W10, D.3.4; D.3.2; D.1.3 2025-09-02
Авторы:

Nripesh Niketan, Vaatsalya Shrivastva

Резюме на русском

#### Контекст Современное программирование становится все более усложненным из-за чрезвычайного разнообразия языков и платформ. Разработчикам требуется владение несколькими языками для создания решений, работающих на разных платформах (например, GPU или мобильных устройствах). Эта ситуация приводит к высоким затратам на обучение и трудоемкость в разработке. Кроме того, традиционные подходы к переводу кода между языками требуют создания отдельных систем для каждой пары языков, что приводит к экспоненциальному росту сложности при увеличении количества языков. На этой почве возникает необходимость в разработке универсального инструмента, позволяющего эффективно переводить код между языками с минимальными затратами и усилий. #### Метод CrossTL является универсальной системой для перевода между программированием языков, основанной на универсальном интерпретаторе CrossGL. Методология включает несколько ключевых компонентов: 1. **Лексеры и парсеры**, конвертирующие исходный код в абстрактные синтаксические деревья (AST) для каждого языка. 2. **Бибилиотеки для перевода**, включающие: - Конвертеры ToCrossGLConverter для перевода исходного кода в универсальный CrossGL. - Генераторы CodeGen для целевых платформ. 3. **Общие модули**, обеспечивающие полный перевод полного программного кода. Гибкость CrossTL обеспечивается модульной архитектурой, позволяющей легко добавлять новые языки. Для этого необходимо разработать только специализированный фронтенд (лексер/парсер) и бэкенд (CodeGen) для поддерживаемого языка. #### Результаты В ходе экспериментов CrossTL был протестирован на следующих языках: CUDA, HIP, Metal, DirectX HLSL, OpenGL GLSL, Vulkan SPIR-V, Rust и Mojo (Slang находится в разработке). Для каждого языка проводился полный цикл тестирования: 1. Выполнение перевода из исходного кода в CrossGL. 2. Обратный перевод из CrossGL в целевой язык. 3. Компиляция и выполнение на соответствующей платформе. Результаты показали, что CrossTL успешно обеспечивает компиляцию и выполнение по всем тестируемым языкам и платформам. Это доказывает практическую применимость и эффективность универсального подхода к переводу кода. #### Значимость CrossTL представляет собой значительный прорыв в области компьютерных технологий, позволяя создавать программы, которые могут запускаться на разных платформах без необходимости повторного написания кода. Он может применяться в следующих областях: - **GPU-программирование и графическое программирование**, где необходимы разные языки для разных платформ. - **Системное программирование**, позволяющее эффек

Abstract

We present CrossTL, a universal programming language translator enabling bidirectional translation between multiple languages through a unified intermediate representation called CrossGL. Traditional approaches require separate translators for each language pair, leading to exponential complexity growth. CrossTL uses a single universal IR to facilitate translations between CUDA, HIP, Metal, DirectX HLSL, OpenGL GLSL, Vulkan SPIR-V, Rust, and Mojo, with Slang support in development. Our system consists of: language-specific lexers/parsers converting source code to ASTs, bidirectional CrossGL translation modules implementing ToCrossGLConverter classes for importing code and CodeGen classes for target generation, and comprehensive backend implementations handling full translation pipelines. We demonstrate effectiveness through comprehensive evaluation across programming domains, achieving successful compilation and execution across all supported backends. The universal IR design enables adding new languages with minimal effort, requiring only language-specific frontend/backend components. Our contributions include: (1) a unified IR capturing semantics of multiple programming paradigms, (2) a modular architecture enabling extensibility, (3) a comprehensive framework supporting GPU compute, graphics programming, and systems languages, and (4) empirical validation demonstrating practical viability of universal code translation. CrossTL represents a significant step toward language-agnostic programming, enabling write-once, deploy-everywhere development.

Ссылки и действия