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.
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
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.