Forum: Mikrocontroller und Digitale Elektronik Einsatz von Embedded C++


von Sergej (Gast)


Lesenswert?

Hallo alle zusammen,

Ich würde gerne eure Meinung dazu wissen
Embedded C++ (EC++):
- ist bezüglich der Sprachdefinition eine Untermenge von Standard C++
- hat alle Vorteile von C und C++
- erzeugt kein Overhead (weil RTTI, EH, Templates, Mehrfachvererbung
  etc. ausgeschlossen)
- es gibt Compiler dazu (von Green Hills, IAR, Keil, Tasking …)
Klingt eigentlich gut.

Warum setzt denn keiner die „tolle“ Sprache ein, obwohl es diese seit
1997 gibt? Oder doch?
Wisst ihr mehr dazu?

Danke.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

es wird eingesetzt. Sonst gäb es ja die Compiler nicht. Oftmal wird
aber auch mit einem normalen C++ Compiler gearbeitet aber die
Verwendung bestimmter Features (vor allem RTTI und EH) abgeschaltet.
Aber C++ wird eben in dem Umfeld in dem der typische Hobbyist unterwegs
ist (8/16 Bitter ohne OS) noch sehr selten eingesetzt.

Warum man aber Templates aus EC++ herausgenommen hat (hat man das
wirklich?) ist mir schleierhaft. Templates werden ja komplett zur
Compilezeit aufgelößt. Es sollte dadurch kein Einfluss auf Codegröße
entstehen.

Matthias

von Sergej (Gast)


Lesenswert?

Hi Matthias,

Danke für deine Antwort.
Die Temlates sind wirklich herausgenommen. Die Leute, die EC++
definiert haben, waren der Meinung , Templates sinnvoll und richtig zu
benutzen, muss erlernt werden (und es wäre schwer).
Hier ist ein Link zu der Beschteibung von EC++:
http://www.caravan.net/ec2plus/rationale.html

Du hast Recht, für kleine Anwendungen reicht C aus. Aber setzen die
Unternehmen, die wirklich große Projekte im embedded Bereich
entwickeln, immer noch die prozedurale Sprache C ein?

Sergej

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

sicher wird in großen Projekten eine OO-Programmiersprache eingesetzt.
Ob das jetzt aber oftmals EC++ ist wage ich zu bezweifeln. Dafür ist
EC++ wohl etwas zu stark beschnitten worden. Für mich ließt sich das
von dir verlinkte Dokument wie die Wunschliste eines C-Compiler
Entwicklers die es ihm einfach macht einen existierenden C-Compiler auf
etwas OO zu erweitern.

Matthias

von Sergej (Gast)


Lesenswert?

Matthias,

du hast sofort erkannt: von OO ist in EC++ ein großes Stück
abgeschnitten worden. Man kann im Prinzip auch in C objektorientiert
programmieren (über die "generische" Programmierung mit *void möchte
ich gar nicht reden). Der Code wird aber viel unübersichtlicher als in
C++ (EC++). Dadurch sinkt die SW-Qualität und steigt die
Fehlerwahrscheinlichkeit, was viele Programmierer nicht wahr nehmen
wollen. Für sie steht die Performance im Vordergrund, die aber durch
die  Steigerung der Rechenliestung oder zus. Speicher ausgeglichen
werden könnte. Klar, das kann bei großen Stückzahlen sehr kostenspielig
werden. Was im Endeffekt günstiger ist, muss überlegt werden.

Sergej

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

klar kann man auch in C OO programmieren. Auch solche Dinge wie
Mehrfachvererbung sind kein Problem. Das will man aber nicht wirklich
tun :-)

Ich seh halt ein Problem bei EC++ das die Sprache den Programmierer
bereits stark einschränkt und zwar auch in Bereichen die nicht
zwingendermaßen auf die Performance gehen. Da nimmt man dann doch
lieber einen vollwertigen C++-Compiler (wie etwa den GCC) und schränkt
eben die Verwendung der "teuren" Features wie RTTI und EH via
Compilerschalter ein. Gerade auf Templates möchte ich, allein schon bei
Containerklassen, nicht verzichten.

Matthias

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.