C++ получил поддержку новой аппаратной платформы RISC-V

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

C++ официально добавил поддержку архитектуры RISC-V: что это значит для разработчиков?

Мир языков программирования продолжает эволюционировать. В начале этого месяца Комитет по стандартизации C++ (WG21) и команды разработчиков основных компиляторов (GCC, Clang/LLVM) объявили о полной официальной поддержке открытой аппаратной архитектуры RISC-V в актуальных версиях C++17, C++20 и предстоящем C++23. Это событие знаменует собой новый этап в развитии языка, традиционно считающегося «королём» встраиваемых систем и высокопроизводительных вычислений.

Ранее C++ уже имел экспериментальную поддержку RISC-V, однако теперь она стала стабильной. Это означает, что разработчики могут использовать современные возможности языка (шаблоны, constexpr, корутины, ranges) на микроконтроллерах, серверах и даже суперкомпьютерах, построенных на этой архитектуре, без риска наткнуться на недокументированные ошибки компиляции.

Почему RISC-V так важна для C++?

RISC-V — это не просто очередной процессор. Это открытая модульная архитектура, которую может использовать любой производитель без лицензионных отчислений. В отличие от ARM или x86, где экосистема жёстко контролируется вендорами, RISC-V даёт полную свободу: от стартапов, делающих IoT-чипы, до государственных проектов, стремящихся к технологической независимости.

Для C++ это идеальная среда:

  • Низкоуровневый контроль. Язык позволяет писать код, максимально близкий к «железу», а RISC-V имеет простой и предсказуемый набор инструкций.
  • Масштабируемость. От 8-битных микроконтроллеров (RV32E) до 64-битных многоядерных систем (RV64GC) — C++ работает везде.
  • Безопасность. Новые стандарты C++20/23 добавляют модули, концепты и улучшенную работу с памятью, что критично для устройств RISC-V без сложных MMU.

Что конкретно изменилось?

Главные нововведения, получившие статус «production-ready»:

  • GCC 13+ и Clang 16+: полностью поддерживают расширения RISC-V (векторные инструкции V, сжатые инструкции C, атомарные операции A).
  • Стандартная библиотека: адаптирована для работы с аппаратными таймерами, прерываниями и многопоточностью на RISC-V.
  • Инструментарий: QEMU теперь имеет эталонную модель RISC-V с полной поддержкой отладки GDB для C++.
  • Операционные системы: Linux 6.x и FreeBSD для RISC-V полностью поддерживают C++-приложения (включая std::thread, std::filesystem).

Практические примеры использования

Уже сейчас разработчики активно портируют на RISC-V сложные C++-фреймворки:

  • Игровые движки (Godot, Unity — экспериментально).
  • Библиотеки машинного обучения (TensorFlow Lite, ONNX Runtime).
  • Криптографические библиотеки (OpenSSL, Botan).

Особый интерес вызывает проект SiFive, где на чипах RISC-V запускают полноценные C++-приложения с корутинами для асинхронного ввода-вывода в IoT-сетях.

Что дальше?

Комитет C++ уже анонсировал рабочие группы по оптимизации ABI (двоичного интерфейса) для RISC-V и добавлению стандартных аппаратных атрибутов (например, для прямого доступа к регистрам). Ожидается, что к 2025 году RISC-V может

Рекомендуем библотеки