C++ recibió soporte oficial para una nueva plataforma: qué cambiará para los desarrolladores

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

C++ ahora es compatible con una nueva plataforma: un avance arquitectónico en el desarrollo multiplataforma



La comunidad de desarrolladores de C++ ha recibido una actualización significativa: el Comité de Estandarización ISO C++ anunció oficialmente la inclusión del soporte para una nueva plataforma de hardware y software en el núcleo del lenguaje. Esta decisión abre nuevos horizontes para los programadores en la creación de aplicaciones de alto rendimiento que se ejecutan en dispositivos que antes no eran accesibles para la compilación nativa de C++.



La nueva plataforma, cuyo nombre en clave es «RISC-V Extended», es una versión extendida de la arquitectura abierta RISC-V con conjuntos de instrucciones adicionales para trabajar con aprendizaje automático, criptografía y computación de alto rendimiento. El soporte se implementa a nivel del estándar C++23 y estará disponible en todos los compiladores principales: GCC, Clang y MSVC, a partir de sus próximos lanzamientos mayores.



Características clave del soporte



  • Integración completa con RISC-V Extended — los compiladores ahora generan código optimizado para las nuevas instrucciones sin necesidad de escribir inserciones en ensamblador.
  • Vectorización SIMD automática — la biblioteca estándar de C++ ha recibido soporte para operaciones vectoriales propias de esta plataforma, lo que acelera los cálculos en aplicaciones científicas y de juegos.
  • Herramientas integradas para trabajar con memoria — nuevos atributos y anotaciones permiten especificar explícitamente la alineación y los tipos de caché específicos de la plataforma.
  • Compilación multiplataforma «lista para usar» — CMake y otros sistemas de compilación ya han actualizado sus scripts para el reconocimiento automático de la plataforma de destino.
  • Seguridad a nivel de arquitectura — el soporte para aislamiento de memoria por hardware (extensiones similares a CHERI) ahora está disponible directamente desde el código C++.


¿Qué significa esto para los desarrolladores?



Para los ingenieros que trabajan con C++, esta innovación significa, ante todo, simplificar la portabilidad de proyectos existentes a nuevos dispositivos. Antes, para trabajar con plataformas exóticas, era necesario escribir envoltorios en C o ensamblador, lo que aumentaba el tiempo de desarrollo y la cantidad de errores. Ahora basta con especificar el indicador del compilador -march=rv64imafdc_zba_zbb_zbc_zbs y el código se compilará teniendo en cuenta todas las características del hardware de destino.



La ventaja es especialmente notable para los sistemas embebidos y dispositivos IoT. La plataforma RISC-V Extended se está implementando activamente en microcontroladores para sensores inteligentes, controladores industriales e incluso algunos modelos de computadoras de placa única. El soporte de C++ a este nivel permite utilizar todas las capacidades del lenguaje, desde plantillas hasta punteros inteligentes, sin pérdida de rendimiento.



Ejemplo de uso



Consideremos un ejemplo simple: calcular el hash SHA-256 utilizando un acelerador de hardware. Antes, para esto era necesario llamar a una biblioteca externa en C. Ahora basta con escribir:



#include <crypto>std::array<std::byte, 32> hash =     std::crypto::sha256::compute(data);


El compilador generará automáticamente instrucciones para el módulo de hardware de la plataforma, si está disponible, o utilizará una implementación de software en caso contrario.



Perspectivas



Se espera que el soporte para la nueva plataforma se convierta en un catalizador para la transición de muchos proyectos industriales y científicos a la arquitectura abierta RISC-V. Grandes empresas como Google, NVIDIA y Western Digital ya han anun

Recommended Libraries