📊 Статистика дайджестов

Всего дайджестов: 34022 Добавлено сегодня: 0

Последнее обновление: сегодня
Авторы:

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...
ID: 2508.21256v1 cs.PL, cs.CL, cs.GR, 68N20, 68N15, 68W10, D.3.4; D.3.2; D.1.3