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.
| Besonderheit | ISO/ANSI C C++ | Eingebettetes C++ |
|---|---|---|
| Ausnahmebehandlung | ||
| Mehrfachvererbung | ||
mutable, ein Speicherklassenspezifizierer | ||
| Namensräume | ||
| Vorlagen | ||
Laufzeittypinformationen ( typeid) | ||
Stilbesetzungen ( static_cast, dynamic_cast, reinterpret_cast, und const_cast) | ||
| Virtuelle Basisklassen |
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:
- IAR-Systeme [ 4 ]
- Freescale Semiconductor (eine Ausgründung von Motorola im Jahr 2004, die 1999 Metrowerks übernommen hatte )
- Tasking Software, [ 5 ] Teil von Altium Limited
- Green Hills Software [ 6 ]
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
- ^ "EC++ Begründung" .
- ^ EC++ Fragen und Antworten
- ^ „Embedded and Extended Embedded C++“ . Archiviert vom Original am 21. Mai 2013. Abgerufen am 9. Dezember 2012 .
- ^ „IAR Systems – Compiler und Debugger“ . Website von IAR Systems . Archiviert vom Original am 05.01.2015 . Abgerufen am 21.02.2011 .
- ^ „Embedded C++ Compiler Technology“ . Tasking-Website . Archiviert vom Original am 1. Januar 2009.
- ^ „Green Hills Optimierte C/C++/EC++-Compiler“ . Webseite von Green Hills Software . Archiviert vom Original am 25.10.2008.
- ^ "Was halten Sie von EC++?" . Bjarne Stroustrups FAQ .
- ^ „Was ist Mac OS X?“ . Amit Singh . Archiviert vom Original am 19.04.2019 . Abgerufen am 04.03.2015 .
- ^ „Die libkern C++-Laufzeitumgebung“ . IOKit-Gerätetreiber-Designrichtlinien .
Externe Links
- Offizielle Website
- Hintergrund und Ziele der Entwicklung der Embedded C++-Spezifikation
- Eingebettetes C++ führt zu schnellerem, kleinerem Code , John Carbone (Embedded.com), 19. Juni 1998
- Aufbau von Bare-Metal-ARM-Systemen mit GNU: Teil 1 – Erste Schritte , Miro Samek, Quantum Leaps, 26. Juni 2007
- Technischer Bericht zur C++-Performance , herausgegeben von der Arbeitsgruppe 21 des ISO-Unterkomitees SC 22
