www.mikrocontroller.net

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


Autor: Sergej (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sergej (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sergej (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.