📊 Статистика дайджестов
Всего дайджестов: 34022 Добавлено сегодня: 0
Последнее обновление: сегодня
📄 CrossTL: A Universal Programming Language Translator with Unified Intermediate Representation
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-программирование и графическое программирование**, где необходимы разные языки для разных платформ.
- **Системное программирование**, позволяющее эффек
Annotation:
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 co...