Articulo de referencia

C++ embebido

El C++ embebido ( EC++ ) es un dialecto del lenguaje de programación C++ para sistemas embebidos . Fue definido por un grupo industrial liderado por los principales fabricantes ...

El C++ embebido ( EC++ ) es un dialecto del lenguaje de programación C++ para sistemas embebidos . Fue definido por un grupo industrial liderado por los principales fabricantes japoneses de unidades centrales de procesamiento (CPU), como NEC , Hitachi , Fujitsu y Toshiba , para abordar las deficiencias de C++ en aplicaciones embebidas. El objetivo de este esfuerzo [ 1 ] es preservar las características orientadas a objetos más útiles del lenguaje C++, minimizando el tamaño del código, maximizando la eficiencia de ejecución y simplificando la construcción del compilador . El sitio web oficial indica que el objetivo es "proporcionar a los programadores de sistemas embebidos un subconjunto de C++ que sea fácil de entender y usar para el programador promedio de C". [ 2 ]

Diferencias con C++

El C++ embebido excluye algunas características de C++.

Algunos compiladores, como los de Green Hills e IAR Systems, permiten habilitar ciertas características de ISO/ANSI C++ en Embedded C++. IAR Systems lo denomina "Extended Embedded C++". [ 3 ]

Compilación

Un programa EC++ se puede compilar con cualquier compilador de C++. Sin embargo, un compilador específico para EC++ podría tener más facilidad para realizar la optimización.

Los compiladores específicos para EC++ son proporcionados por empresas como:

Crítica

El lenguaje ha tenido una mala acogida entre muchos programadores expertos en C++. En particular, Bjarne Stroustrup afirma: «Hasta donde yo sé, EC++ está muerto (2004), y si no lo está, debería estarlo». [ 7 ] De hecho, el sitio web oficial de EC++ en inglés no se ha actualizado desde 2002. Sin embargo, Apple Inc. ha adoptado un subconjunto restringido de C++ (basado en Embedded C++) como lenguaje de programación exclusivo para crear todos los controladores de dispositivos I/O Kit para los sistemas operativos macOS, iPadOS e iOS de Apple, presentes en los populares productos Macintosh, iPhone y iPad. [ 8 ] Los ingenieros de Apple consideraron que las excepciones, la herencia múltiple, las plantillas y las características de información de tipo en tiempo de ejecución del C++ estándar eran insuficientes o no lo suficientemente eficientes para su uso en un núcleo multihilo de alto rendimiento. [ 9 ]

Referencias

  1. "Fundamentos de EC++" .
  2. Preguntas y respuestas sobre EC++
  3. "C++ embebido y extendido" . Archivado del original el 21 de mayo de 2013. Consultado el 9 de diciembre de 2012 .
  4. "IAR Systems - Compiladores y depuradores" . Sitio web de IAR Systems . Archivado del original el 5 de enero de 2015. Consultado el 21 de febrero de 2011 .
  5. "Tecnología de compilador C++ embebido" . Sitio web de Tasking . Archivado del original el 1 de enero de 2009.
  6. "Green Hills optimiza los compiladores C/C++/EC++" . Sitio web de Green Hills Software . Archivado del original el 25 de octubre de 2008.
  7. "¿Qué opinas de EC++?" . Preguntas frecuentes de Bjarne Stroustrup .
  8. "¿Qué es Mac OS X?" . Amit Singh . Archivado del original el 19-04-2019 . Consultado el 04-03-2015 .
  9. "El entorno de ejecución C++ de libkern" . Directrices de diseño de controladores de dispositivos IOKit .
  • Sitio web oficial
  • Antecedentes y objetivos del desarrollo de la especificación de C++ embebido
  • El C++ embebido produce código más rápido y conciso , John Carbone (Embedded.com), 19 de junio de 1998
  • Creación de sistemas ARM sin sistema operativo GNU: Parte 1 - Primeros pasos , Miro Samek, Quantum Leaps, 26 de junio de 2007
  • Informe técnico sobre el rendimiento de C++ , elaborado por el Grupo de Trabajo 21 del Subcomité SC 22 de la ISO.