- 12V Akku mit 280 Ah bauen         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: welche programmiersprache ist die effizienteste?

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.02.2004
    Ort
    Wilhelmshaven
    Beiträge
    129
    Anzeige

    Praxistest und DIY Projekte
    Vielleicht nochmal eine andere Sichtweite:
    Ich habe mit ASM angefangen und kam damit sehr gut klar, steige jetzt aber gerade auf C um, weil mein Bot vektorielle Navigation kriegen soll und ich glaube, diese Mathematik kann ich persönlich einfacher in C beherrschen.
    Die Antwort auf die Frage nach der richtigen Programmiersprache fängt bei Dir und Deinem Bot an.
    Was kannst Du schon? - Du hast Kenntnisse in BASIC, nutze BASCOM.
    Was soll der Bot können? Gibt es zeitkritische hardwarenahe Funktionen, nimm ASM bzw. Inline-ASM. Gibt es komplexe mathematische Aufgaben, nimm C.
    Worauf liegt Dein Schwerpunkt? - Willst Du hardwarenah programmieren nimm ASM.
    Abstrakter Code bietet C. Bascom liegt - glaub ich - irgendwo dazwischen.

    Was soll der µC überhaupt machen?

    Hat man sich für eine Sprache entschieden, und hat Übung mit dieser, kann man sicherlich auch die meisten Aufgaben der Heimrobotik in dieser Sprache besser lösen als dafür extra umzusteigen.
    Ist es für Deine Aufgabenstellung überhaupt nötig, die Sprache zu wechseln?
    ---
    Ich habe weder mit Basic noch mit Bascom je gearbeitet. Ggf. kann ein BASCOM-Nutzer meine Ausführungen noch ergänzen

    Gruß und gutes Gelingen

    rockin_santa

  2. #12
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.693
    Hi,

    die Diskussion um Programmiersprachen finde ich insbesondere dann lustig, wenn die konkrete Frage so eingeschränkt ist wie oben:
    welche programmiersprache ist die effizienteste?
    Jeder Programmierer weiß, dass es nur eine einzig wahre Computersprache gibt. Jede Woche eine andere. Im Jahr 2007 zählte Bill Kinnerlsey von der Universität in Kansas 2500 Programmiersprachen, während damals Diarmuid Piggott von der Murdcoch University in Perth auf mehr als 8500 kam. Und das ist ja nicht alles: die Diskussion der Kleinender mit den oder vielmehr gegen die Großender ist ja schon legendär (Anmerkung: Kleinender schreiben das LSB ganz rechts . . .). Und, soweit ich weiß, klärte uns Brian W. Kernighan 1981 über die Tatsache, dass die Schreibweise
    x:=0; y:=x+1; z:=2
    in Pascal ok, in C aber syntaktisch falsch ist, mit seiner Schrift "Why Pascal is not my favorite programming language" auf und läutete damit vermutlich den Niedergang von Pascal ein. Immerhin haben wir bei Microcontrollern nur eine begrenzte Wahl - und müssen uns keine Gedanken über imperative oder funktionale, über objektorientierte oder deklarative Sprachen machen. Und daher ist auch die etwas unklare Fragestellung im vorliegenden Kontext ganz ok *gggg*.

    Ich habe mit FORTRAN Textverarbeitung und Bitmanipulation gemacht. Eines der ersten Adventurespiele ist in Fortran geschrieben. Mit Lisp habe ich mir viele Stunden Arbeit gespart durch einen Offset zu einem CAD-Programm. Nun könnte ich ja weiter in Fortran programmieren - könnte mir einen Fortran-nach-C-Compiler schreiben, der mir viel Mühe abnähme - aber das wäre radbruchs Ratschlag etwas zuuu weit getrieben. Ich habe halt für meine µController-Projektchen Assembler gelernt oder eher aufgefrischt von alten x86- und Z80-Dialekten und danach C im Hinblick auf µController gelernt. Das reicht für meine Vorhaben. Damit werde ich aber auch nie sagen, dass andere Programmiersprachen (für µController) nix taugen. Allenfalls leise andeuten, dass z.B. der Umstieg von AVR auf ARM mit C-Code etwas leichter fällt . . . . aber das ist ja oben schon angeführt.
    Ciao sagt der JoeamBerg

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Moin moin.

    Die Frage ist nicht leicht zu beantworten, jede Sprache hat seine
    Vor und Nachteile auf dem Programmierer und der Hardware bezogen.

    Ich habe meine ersten Erfahrungen mit ASM gemacht und da ich nichts
    Anderes kannte war ich damit auch voll zufrieden. Außerdem(!!!) halte
    ich ASM gerade für Anfänger für ein absolutes MUß um zu lernen wie
    so ein µC überhaupt arbeitet. ASM ist halt sehr Hardwarenah, läuft
    deshalb allertdings auch immer nur auf den Chip für welchen das
    Prog geschrieben wurde.

    Man muß unter ASM allerdings die Datenblätter lesen und auch
    verstehen lernen was einiges an Einarbeitung bedeutet. Dafür kann
    man dann aber auch jeden einzelnen Befehl nachvollziehen, weiß
    also quasie genau was der µC wann/wie macht. Nachteil man muß
    wirklich alles selber "zu Fuß" schreiben.

    Bei Programme wie Basic u.s.w. reicht ein Print "Hallo" und Hallo
    erscheint wo auch immer. Wenn nicht..tja wer weis was der
    Compiler aus (Print "hallo") an Maschnencode generiert????
    Soll bedeuten, der Programmierer muß sich darauf verlassen das
    die Ersteller der Hochsprache keinen Mist gebaut haben! Wenn ich
    da an C und seine Stack Überläufe denke.....au, au, au.

    Andererseits sind Hochsprache Programme leichter zu lesen und
    können auch relativ einfach für unterschiedliche Prozessoren
    kompiliert werden. Das ist ein echter posetiver Zeit/Kostenfacktor.

    Basc ist recht leicht zu erlernen und reicht für die meisten Anwendungen.
    C ist nicht wirklich schwieriger und vor allem auch gebräuchlicher, was
    für einen späteren Beruflichen gebrauch sicherlich von Nutzen sein
    kann.

    Aber zuletzt noch einmal!

    Wenn Du echte gute Grundkentnisse erwerben willst, verstehen
    lernen willst wie so ein µC intern arbeitet. Dann schreibe zumindest
    am Anfang ein paar kleine ASM Programme. In z.B. Bascom ein
    Print "Hallo" eintippen und das klappt dann, ist nett und macht Spaß.
    Aber Du hast deshalb immer noch NULL Wissen wie der µC das
    jetzt gemacht hat.

    Kopiere Dir alle Befehle nicht nach ABC, sondern nach Typ z.B.
    Sprungbefehl..gleiches für Register und und und. Das pappst
    Du dann über dem Monitor an die Wand. 1 Wochenende und
    Du kannst richtig tolle kleine ASM Programme schreiben.

    Ich muß allerdings zugeben das bei meinen ersten "Computern"
    PC100 = (AIM65 (?)) vor ca 30 Jahren, das komplette Betriebssysten
    in sehr gut beschriebenen Assembler (ca 2000 Seiten) dabei war.
    ich konnte also Abschreiben und austesten ohne Ende.
    SO etwas grenzgeniales gibt es heute leider nicht mehr!

    Grüße Richard

  4. #14
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.693
    Zitat Zitat von Richard
    ... Man muß unter ASM allerdings die Datenblätter lesen und auch verstehen lernen ...
    Sollte man bei anderen Sprachen vielleicht auch? Dann wäre dieser Ratschlag vielleicht nicht nötig?
    Zitat Zitat von Richard
    ... Kopiere Dir alle Befehle nicht nach ABC, sondern nach Typ z.B. Sprungbefehl ...
    Zumindest sind in den Datenblättern von ATMEL die Mnemonics der Befehle schon geordnet:
    ARITHMETIC AND LOGIC INSTRUCTIONS
    BRANCH INSTRUCTIONS
    BIT AND BIT-TEST INSTRUCTIONS
    DATA TRANSFER INSTRUCTIONS
    ...
    Zitate aus 8161C–AVR–05/09

    Mnemonics dürften ja reichen, wer programmiert denn heute noch direkt in Hex?
    Ciao sagt der JoeamBerg

  5. #15
    Benutzer Stammmitglied
    Registriert seit
    28.05.2009
    Beiträge
    55
    ui das sind fiele antworten für 2 tage^^

    also ich denke ich werde erstmal mit basic starten da ich es schon ein wenig behersche und auch schon ein paar programme erfolgreich damit geschrieben habe. wen die leistung von basic nicht mehr ausreicht kann ich ja immernoch eine andere sprache lehrnen, ich muss mich ja nicht gleich übernehmen.

    ok, danke für die zahlreichen antworten^^

    MFG Gary

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

12V Akku bauen