Embedded C++

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Embedded C++ (EC++, ECPP) ist eine von C++ abgeleitete Programmiersprache mit einem gegenüber C++ eingeschränkten Funktionsumfang. Embedded C++ wurde von einem Industriekonsortium verschiedener japanischer Chip-Hersteller, darunter NEC, Hitachi, Fujitsu, und Toshiba für eingebettete Systeme mit geringen Ressourcen wie z. B. Programm- und Arbeitsspeicher entwickelt. Das erklärte Ziel war die Schaffung einer Programmiersprache, welche die wichtigsten zur objektorientierten Programmierung in C++ eingeführten Sprachmittel unterstützt, dabei aber geringere Codegröße, höhere Effizienz und einfachere Erstellung von Compilern für eingebettete Mikrocontroller ermöglichen soll.

Fehlende Eigenschaften[Bearbeiten]

Die erste Spezifikation zu Embedded C++ wurde 1996 herausgegeben, die aktuelle Revision 3 wurde 1999 veröffentlicht. Embedded C++ ist als Untermenge von C++ definiert, wobei auf folgende Eigenschaften von C++ verzichtet wurde:

Kritik[Bearbeiten]

Die Sprache wurde insbesondere von erfahrenen C++-Programmierern abgelehnt, der bekannteste Kritiker ist der C++-Erfinder Bjarne Stroustrup. Stroustrup kritisiert hier vor allem den Verlust von C++-typischen Eigenschaften sowie die fehlende Unterstützung der C++-Standardbibliothek durch EC++. Des Weiteren warnt Stroustrup vor einer Entzweiung der Community um C++.[1] Als Alternative nennt Stroustrup die Verwendung von Coding Standards für C++[2] und die Empfehlungen durch das ISO C++ Committee[3], um effizienten C++-Code für eingebettete Systeme zu erstellen.

Ein weiterer Kritikpunkt ist, dass Embedded C++ für die Anwendung auf 32-Bit-Prozessoren ausgelegt ist, anstatt sich auf den großen Markt der ressourcenschwachen 8/16-Bit-Prozessoren zu konzentrieren.

Der Embedded-C++-Standard wird nur von wenigen Compilern unterstützt.

Quellen[Bearbeiten]

  1. Stroustrup: FAQ - What do you think of EC++?
  2. JSF air vehicle C++ coding standards
  3. Technical Report on C++ Performance

Weblinks[Bearbeiten]