C++ ist nicht C. C stammt von der Programmiersprache B ab, die absolut Hardwareabhängig war. Basic dagegen wurde von Anfang an her nicht systemnah programmiert. C++ wurde dann erst von wenigen Jahren mit einem Ähnlichen Standart versehen wie C. Im Gegensatz zu C enthält C++ Konstrukte, die nicht mehr durch Hardware darstellbar sind (Klassen, Objekte, Vererbung, etc...). Das eigentliche C dagegen war eine weiterentwickelte Form von Assembler. Schau dir mal B und BCPL an.Zitat von Rodney
Wikipedia:
"BCPL (Basic Combined Programming Language) ist eine um 1967 von Martin Richards entwickelte, kompilierte, systemnahe Programmiersprache, abgeleitet von der Combined/Cambrige Programming Language CPL. Es ist eine Sprache aus der ALGOL-Familie."
Verwechsel jetzt bitte nicht systemnah und Plattformunabhängig! Ich glaube, dass ich das teilweise gemacht habe in meinem Beitrag oben.
[quote="Rodney"]Und dass man mit C wesentlich effektiveren Code als mit Basic produzieren kann ist auch Tatsache...[/q]
Nein das stimmt nicht. Du bist geblendet von Microsoft's Visual Basic. Im übrigen würde man eher VB mit C++ oder C# als mit C vergleichen. Das wirkliche C wird heute fast nur noch in der System (Betriebssystem-) Enwicklung verwendet.
Es ist ein leichtes dir einen Compiler für einen Basic Dialekt zu programmieren, der schnelleren und kleineren Code erzeugt als Turbo C. Es hängt immer davon ab welchen Compiler du für welchen Zweck verwendest.
Im übrigen muss man Schnelligkeit von Code immer in Relation zur Entwicklungszeit und Transparenz sehen. Jeder C Code würde wie eine lahme Ente gegen Assembler aussehen. Aber was bringt mir das, wenn ich nur einen blöden Text auf dem Bildschirm ausgeben will.
Zum Thema C bei Robotern: Bist du jemals dazu gekommen, dass die Ausführungsgeschwindigkeit deines µC noch grade dazu reichte den Handlungen deines Roboters gerecht zu werden? Wohl eher nicht. 99% der Zeit verbringt der µC damit nichts effektives zu machen. Da macht es keinen großen Unterschied, ob man einen rel. schlechten Basic Compiler oder C-Compiler verwendet.
Und dann mach es mal mit Assembler!Zitat von Rodney
Noch eine Mär, die hier widerlegt werden sollte:
Viele meinen Basic wäre langsamer als C, weil es in C programmiert wurde und C wäre langsamer als Assembler weil es in Assembler programmiert wurde.
Mal abgesehen davon, dass C wurde meines Wissens nach wohl eher in Fortan o.ä. programmiert wurde, stimmt diese These für Compiler nicht. Ein Compiler in Basic muss doch nicht langsameren Code erzeugen als C, nur weil er in C programmiert wurde (außerdem gibt es Basic schon länger als C). Wir beschäftigen uns ja mit Compilern und nicht mit Interpretern, wo das zutrifft (siehe Java).
Fazit: Die Geschwindigkeit eines durch einen Compiler erzeugten Codes hängt vom Compiler und nicht von der Sprache ab. Außerdem kann man mit jeder Sprache guten und schlechten Code programmieren. Und hier fängt es schon an!
Lesezeichen