Найти в Дзене
Цифровая Переплавка

🚀 ИИ переводит старые программы на новые языки: Fortran уступает место C++

Представьте себе миллионы строк кода, написанные десятилетия назад на устаревшем языке программирования. Этот код работает исправно, поддерживает работу сложнейших систем, от климатического моделирования до аэрокосмических вычислений, но… написан на Fortran. Да, это всё ещё реальность многих научных институтов, включая знаменитую Лос-Аламосскую национальную лабораторию (LANL). И вот теперь команда учёных из LANL решила вдохнуть в эти программы новую жизнь — при помощи искусственного интеллекта. Созданный ещё в 1950-е годы, Fortran («Formula Translator») в своё время стал революцией в научных вычислениях. Но сегодня его используют всё реже, потому что: Поэтому перевод старого кода на современные языки вроде C++ становится актуальной задачей, хотя и чрезвычайно трудоёмкой. Ведь ручной перевод занимает месяцы, а иногда и годы, и чаще всего является далеко не самым вдохновляющим занятием. Именно здесь в игру вступает команда из 20 человек под руководством Дэна О’Мэлли из LANL. Они решили и
Оглавление

Представьте себе миллионы строк кода, написанные десятилетия назад на устаревшем языке программирования. Этот код работает исправно, поддерживает работу сложнейших систем, от климатического моделирования до аэрокосмических вычислений, но… написан на Fortran. Да, это всё ещё реальность многих научных институтов, включая знаменитую Лос-Аламосскую национальную лабораторию (LANL). И вот теперь команда учёных из LANL решила вдохнуть в эти программы новую жизнь — при помощи искусственного интеллекта.

🕰️ Почему Fortran устарел?

Созданный ещё в 1950-е годы, Fortran («Formula Translator») в своё время стал революцией в научных вычислениях. Но сегодня его используют всё реже, потому что:

  • 🐢 Медленно адаптируется к современным компьютерным архитектурам.
  • 🧑‍💻 Мало специалистов, готовых поддерживать огромные базы кода на Fortran.
  • 💾 Ограниченные возможности интеграции с современными приложениями и системами.

Поэтому перевод старого кода на современные языки вроде C++ становится актуальной задачей, хотя и чрезвычайно трудоёмкой. Ведь ручной перевод занимает месяцы, а иногда и годы, и чаще всего является далеко не самым вдохновляющим занятием.

🤖 Искусственный интеллект в помощь программистам

Именно здесь в игру вступает команда из 20 человек под руководством Дэна О’Мэлли из LANL. Они решили использовать новейшие достижения в области искусственного интеллекта, а именно большие языковые модели (LLM) и технику генерация дополненная поиском (Retrieval-Augmented Generation - RAG).

Вот как работает метод:

  • 📚 Большие языковые модели (LLM) — это нейронные сети, которые предварительно обучены на огромных массивах текста и способны улавливать тончайшие закономерности.
  • 🔍 Генерация дополненная поиском (RAG) — подход, при котором нейросеть дополнительно обращается к внешним данным для генерации ответов. Таким образом, модель обучается на примерах переводов кода с Fortran на C++, сделанных человеком.

⚙️ Как именно это реализовано?

Исследователи берут куски кода, которые профессиональные программисты вручную перевели с Fortran на C++, и «скармливают» их нейросети. Модель, изучив такие примеры, самостоятельно осознаёт логику и особенности перевода, включая тонкости, которые человек вносил в код, и затем воспроизводит подобный стиль.

Всего за шесть месяцев работы над проектом учёным удалось натренировать модель на небольших наборах данных (по 1000–1200 строк кода). Уже после нескольких примеров нейросеть успешно копировала стиль конкретного программиста, выдавая качественные переводы на C++.

🌟 Преимущества подхода с ИИ и RAG

Почему этот подход имеет большие перспективы?

  • ⏱️ Огромная экономия времени: ИИ может сократить процесс перевода с месяцев и лет до дней и недель.
  • 🔄 Универсальность и масштабируемость: Методика легко масштабируется и адаптируется под миллионы строк кода.
  • 🎨 Персонализация стиля: ИИ сохраняет индивидуальные особенности и предпочтения конкретных программистов, делая перевод понятным и удобным для использования.

📊 Перспективы применения технологии

Дэн О’Мэлли уверен, что если его команда сможет доказать эффективность подхода на небольших наборах данных, это может стать стандартным методом во многих научных лабораториях. Перевод программного обеспечения с помощью ИИ не только сохранит ценный интеллектуальный капитал, накопленный десятилетиями, но и ускорит модернизацию инфраструктуры, существенно повысив её эффективность и надёжность.

Как отмечает директор Лос-Аламосской национальной лаборатории Том Мейсон:

«Сегодня практически нет ни одной научной области, которая бы не изменилась под воздействием ИИ. Наши исследовательские задачи уже сейчас в той или иной степени зависят от возможностей искусственного интеллекта».

💡 Личное мнение автора статьи

Эта инициатива кажется не просто интересной, но и чрезвычайно важной. Она открывает путь для сохранения огромного объёма знаний, скрытых в устаревшем коде, и создаёт фундамент для быстрого и эффективного развития науки. К тому же, чем меньше программистам приходится заниматься монотонной ручной работой, тем больше времени остаётся на творчество и решение действительно сложных и интересных задач.

На мой взгляд, особенно ценна возможность обучения нейросетей в «стиле» конкретных специалистов. Это не только экономия времени, но и сохранение человеческого опыта, часто выражающегося в уникальных подходах и методах кодирования.

🔗 Оригинальная статья: Translate Fortran to C++ with AI and RAG