Embedded C++
# Embedded C++

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

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:

* Mehrfachvererbung
* Virtuelle Basisklassen
* Typüberprüfung zur Laufzeit
* Die Typumwandlungskonstrukte (static_cast, dynamic_cast, reinterpret_cast und const_cast)
* Der Spezifizierer mutable
* Namensräume
* Ausnahmen (Exceptions)
* generische Programmierung (Templates)

## Kritik

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++. Als Alternative nennt Stroustrup die Verwendung von Coding Standards für C++ und die Empfehlungen durch das ISO C++ Committee, 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

* ↑ Stroustrup: FAQ - What do you think of EC++?
* ↑ JSF air vehicle C++ coding standards
* ↑ Technical Report on C++ Performance
