- Labornetzteil AliExpress         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 27 von 27

Thema: Welche ist die beste Programmiersprache?

  1. #21
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    Anzeige

    LiFePo4 Akku selber bauen - Video
    wer den AVR programmieren möchte mit c, der kommt mit winavr am besten aus. dort gibt es keine schlampige arbeit. es ist das gnu standart c.
    ich würde einmal an deiner stelle den gnu einmal benutzen. wenn du linux kennst, weisst du, wie er funktioniert. was das winavr so kompliziert erscheinen lässt, ist das ansprechen der beonderen namensregister der avr-chip, und sind genormt, ein glück.
    es gibt bei den AVR kein oop.
    mfg pebisoft

  2. #22
    Benutzer Stammmitglied
    Registriert seit
    05.04.2005
    Beiträge
    66
    Zitat Zitat von Felix G
    Das würde ich so nicht sagen, man kann durchaus beides lernen.
    [...]
    Grundsätzlich spricht nichts dagegen nach C auch noch C++ zu lernen, aber dann bitte richtig!
    Jep, ganz deiner Meinung. Ich schrieb ja auch von einem "Mischmasch", der entsteht, wenn man C und C++ vermischt, weil man es gleichzeitig lernen möchte. Nacheinander ist es kein Problem, wenn man sich der Unterschiede beider Sprachen bewusst ist und nicht denkt "C++ ist erweitertes C".

    Zitat Zitat von Blackbird
    C oder C++ beschreiben doch nur den Sprachumfang, die Syntax, nicht die Semantik.
    Mal davon abgesehen, dass ein C++-Compiler nicht jedes C-Programm kompiliert, gibt es einen gravierenden Unterschied zwischen C- und C++-Programmen. Dieser Unterschied ist der Programmierstil. In C++ schreibt man seine Programme objektorientiert, nur kurze Funktionen, dafür mehr. In C eher längere Funktionen und prozedural.

    Das meinte ich mit der Aussage, dass man entweder C oder C++ lernen sollte.
    (Im vollen Bewusstsein, hiermit evtl. einen Glaubenskrieg auszulösen:) Ja, ich finde es verwerflich, in C++ mit C-Stil zu programmieren.

    Zitat Zitat von Blackbird
    WinAVR-C unterstützt nur die Syntax von C.
    Schonmal probiert, eine C++-Datei ins Makefile zu setzen? ;)
    Das funktioniert sogar recht gut, wie man auch der avrlibc-FAQ entnehmen kann. Exceptions funktionieren nicht und die STL gibt's natürlich auch nicht. Aber Klassen, Vererbung, virtuelle Funktionen etc. funktionieren ziemlich gut mit WinAVR.

    Zitat Zitat von pebisoft
    es ist das gnu standart c.
    Bitte "Standard". Rechtschreibfehler sind mir meist egal, aber auf "Standard" mit t reagier ich allergisch.
    Zitat Zitat von pebisoft
    es gibt bei den AVR kein oop.
    Wie o.g., ist das nicht hundert Prozent korrekt, man kann mit WinAVR C++-Code schreiben.
    Man kann auch, wie Blackbird gesagt hat, in C oo programmieren. Selbst wenn C++ überhaupt nicht unterstützt würde, träfe diese Aussage so nicht zu.

  3. #23
    Erfahrener Benutzer Robotik Einstein Avatar von Felix G
    Registriert seit
    29.06.2004
    Ort
    49°32'N 8°40'E
    Alter
    41
    Beiträge
    1.780
    Zitat Zitat von lekro
    Zitat Zitat von Blackbird
    WinAVR-C unterstützt nur die Syntax von C.
    Schonmal probiert, eine C++-Datei ins Makefile zu setzen?
    Das funktioniert sogar recht gut, wie man auch der avrlibc-FAQ entnehmen kann. Exceptions funktionieren nicht und die STL gibt's natürlich auch nicht. Aber Klassen, Vererbung, virtuelle Funktionen etc. funktionieren ziemlich gut mit WinAVR.
    Wie sieht das denn performancemässig aus?
    hast du schonmal getestet wieviel langsamer bzw. grösser der Code dabei wirklich wird?

    Denn je nach Anwendung wäre es manchmal schon ganz praktisch wenn man objektorientiert programmieren könnte.
    So viele Treppen und so wenig Zeit!

  4. #24
    Benutzer Stammmitglied
    Registriert seit
    05.04.2005
    Beiträge
    66
    Wie sieht das denn performancemässig aus?
    hast du schonmal getestet wieviel langsamer bzw. grösser der Code dabei wirklich wird?
    Ich habe bisher nur mal ein wenig rumprobiert, aber der ausführbare Code wird dadurch kaum größer.

    Ob man C oder C++ kompiliert, die avrlibc ist dieselbe; es gibt schließlich noch keine avrlibc++, die einen signifikanten Größenunterschied verursachen könnte.

    Klassen etc. sind ja nur Sprachkonstrukte, im späteren Code erzeugen die keinen Overhead mehr.
    Nur virtuelle Funktionen erzeugen einen geringen Overhead. Aber man muss sich fragen, ob man in C diesen Overhead nicht auch hätte, wenn man das Prinzip der virtuellen Funktionen manuell implementiert.

    new/delete sollte man auf den kleineren Controllern aber weitestgehend meiden, da man sie meistens über malloc/free implementiert und dadurch einigen Overhead erzeugt.


    Ob C++-Code langsamer ist, habe ich nicht überprüft (mir ist es aber auch nicht aufgefallen). Theoretisch betrachtet sollte es absolut keine Performanceeinbußen geben, wie auf dem PC. Praktisch könnte gelegentlich etwas umständlicherer Code als nötig erzeugt werden, da der avr-C++-Compiler nicht so sehr gepflegt wird wie der C-Compiler und vielleicht manche Optimierungen in Bezug auf Klassen nicht kennt. Das sollte aber selten auftreten (wenn überhaupt).
    Müsste man mal messen oder die Listings durchsehen, ich denke aber, dass es keinen Geschwindigkeits-Unterschied geben wird.

  5. #25
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    07.07.2004
    Ort
    um Berlin
    Beiträge
    346
    lekro hatte geschrieben:
    Blackbird hat folgendes geschrieben::
    C oder C++ beschreiben doch nur den Sprachumfang, die Syntax, nicht die Semantik.
    Mal davon abgesehen, dass ein C++-Compiler nicht jedes C-Programm kompiliert, gibt es einen gravierenden Unterschied zwischen C- und C++-Programmen. Dieser Unterschied ist der Programmierstil. In C++ schreibt man seine Programme objektorientiert, nur kurze Funktionen, dafür mehr. In C eher längere Funktionen und prozedural.
    Hier muß ich Dir widersprechen: C++ erleichtert (und unterstützt) die OOP, C++ IST selbst aber keine OOP-Language. C++ ist (nur) eine "Sprach-Elemente-Erweiterung" (und zwar eine ziemlich mächtige) von C, die jetzt einen eigenen Standard hat.
    Die Verwendung von C++-Sprachelementen muß nicht automatisch zu OOP-Code führen. Der Programmierer sollte es aber tun - und hier bin ich mit Dir vollkommen einer Meinung.
    Leider gibt es noch zu viele "C-Progger", die mit C++ reinen strukturierten Code abliefern. Und es gibt aber auch die "OOP-Progger", die es nicht lassen können, aus jedem 3-Zeiler ein mehrseitiges OOP-Programm zu machen. DAS ist dann meistens wirklich langsamer als eine simple Funktion - und DAS hat auch der OOP den Ruf der Langsamkeit eingebracht.
    Es liegt also an den Menschen wie sie die Sprachen benutzen, nicht an den Sprachen selbst. Die sind unschuldig.

    Ich finde es absoluten Quatsch, wegen C und C++ eine Glaubenskrieg zu beginnen ("niemals mit C, nur mit C++ beginnen", "C++ ist unübersichtlicher", ...).
    Einfach neugierig sein und lernen. Dann kann man selber entscheiden.

    Übrigens: Die Sprache sollte zur Aufgabe passen, nicht umgekehrt.

    Blackbird

  6. #26
    Benutzer Stammmitglied
    Registriert seit
    05.04.2005
    Beiträge
    66
    Zitat Zitat von Blackbird
    Übrigens: Die Sprache sollte zur Aufgabe passen, nicht umgekehrt.
    Full ACK.

  7. #27
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    EBEN ! Also muß man ggf. die Aufgaben anpassen
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Seite 3 von 3 ErsteErste 123

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests