Embedded C++ ( EC++ ) ist ein Dialekt der Programmiersprache C++ für eingebettete Systeme . Er wurde von einer Industriegruppe unter der Führung führender japanischer Prozessorhersteller (CPUs) wie NEC , Hitachi , Fujitsu und Toshiba entwickelt , um die Schwächen von C++ für eingebettete Anwendungen zu beheben. Ziel dieser Bemühungen [ 1 ] ist es, die wichtigsten objektorientierten Eigenschaften von C++ zu erhalten, gleichzeitig aber die Codegröße zu minimieren, die Ausführungseffizienz zu maximieren und die Compilerentwicklung zu vereinfachen. Auf der offiziellen Website heißt es: „Programmierern eingebetteter Systeme soll eine Teilmenge von C++ zur Verfügung gestellt werden, die für den durchschnittlichen C-Programmierer leicht verständlich und anwendbar ist.“ [ 2 ]

Unterschiede zu C++

Eingebettetes C++ schließt einige Funktionen von C++ aus.

BesonderheitISO/ANSI C C++Eingebettetes C++
AusnahmebehandlungJaNEIN
MehrfachvererbungJaNEIN
mutable, ein SpeicherklassenspezifiziererJaNEIN
NamensräumeJaNEIN
VorlagenJaNEIN
Laufzeittypinformationen ( typeid)JaNEIN
Stilbesetzungen ( static_cast, dynamic_cast, reinterpret_cast, und const_cast)JaNEIN
Virtuelle BasisklassenJaNEIN

Einige Compiler, wie beispielsweise die von Green Hills und IAR Systems, ermöglichen die Aktivierung bestimmter Funktionen von ISO/ANSI C++ in Embedded C++. IAR Systems nennt dies „Extended Embedded C++“. [ 3 ]

Zusammenstellung

Ein EC++-Programm kann mit jedem C++-Compiler kompiliert werden. Ein speziell für EC++ entwickelter Compiler kann die Optimierung jedoch unter Umständen einfacher durchführen.

Spezielle Compiler für EC++ werden von Unternehmen wie beispielsweise folgenden angeboten:

Kritik

Die Sprache stieß bei vielen erfahrenen C++-Programmierern auf wenig Gegenliebe. Insbesondere Bjarne Stroustrup meint: „Meines Wissens ist EC++ tot (Stand 2004), und wenn nicht, sollte es das sein.“ [ 7 ] Tatsächlich wurde die offizielle englische EC++-Website seit 2002 nicht mehr aktualisiert. Dennoch hat Apple Inc. eine eingeschränkte Teilmenge von C++ (basierend auf Embedded C++) als exklusive Programmiersprache für die Entwicklung aller I/O-Kit -Gerätetreiber für Apples Betriebssysteme macOS, iPadOS und iOS der beliebten Macintosh-, iPhone- und iPad-Produkte übernommen. [ 8 ] Die Apple-Ingenieure waren der Ansicht, dass die Ausnahmen, die Mehrfachvererbung, die Templates und die Laufzeittypinformationen von Standard-C++ entweder unzureichend oder nicht effizient genug für den Einsatz in einem leistungsstarken, multithreadfähigen Kernel seien. [ 9 ]

Referenzen

  1. ^ "EC++ Begründung" .
  2. ^ EC++ Fragen und Antworten
  3. ^ „Embedded and Extended Embedded C++“ . Archiviert vom Original am 21. Mai 2013. Abgerufen am 9. Dezember 2012 .
  4. ^ „IAR Systems – Compiler und Debugger“ . Website von IAR Systems . Archiviert vom Original am 05.01.2015 . Abgerufen am 21.02.2011 .
  5. ^ „Embedded C++ Compiler Technology“ . Tasking-Website . Archiviert vom Original am 1. Januar 2009.
  6. ^ „Green Hills Optimierte C/C++/EC++-Compiler“ . Webseite von Green Hills Software . Archiviert vom Original am 25.10.2008.
  7. ^ "Was halten Sie von EC++?" . Bjarne Stroustrups FAQ .
  8. ^ „Was ist Mac OS X?“ . Amit Singh . Archiviert vom Original am 19.04.2019 . Abgerufen am 04.03.2015 .
  9. ^ „Die libkern C++-Laufzeitumgebung“ . IOKit-Gerätetreiber-Designrichtlinien .