Stefanie: C-Arrays und Stringverarbeitung

Beitrag lesen

Hi,

Dann verdienen aber auch die Erfinder von C jeder eine Watsch'n, denn diese Sprache lässt erheblich leichter als viele andere zu, dass man schwer lesbaren Code schreibt.

och..., ich muss im Moment Bash-Skripte schreiben - die Sprache verhindert gerade zu, dass der Code leserlich wird ;-( Deswegen glaube ich die Geschichte mit dem Debian-Programmierer auch unbesehen. Als Linux-Programmierer gilt man doch als Weichei, wenn man Kommentare schreibt ;-) Aber genug der Klischees...

Dabei benötigt expliziter Quellcode in der Ausführung selten mehr Zeit. Bei welchem Code der Parser mehr schuften muss, kann ich jetzt nicht nachvolliehen.

Nun, auch sauber und ausführlich geschriebenen Code in der Ausführung zu optimieren, dass ist ja gerade der Job eines Compilers. Und das können gute Compiler heutzutage auch (Parser natürlich nicht). Natürlich ist von der Laufzeit ein Spaghetti-Code der nur globale Variablen benutzt erstmal schneller, weil der der Prozessor sich nicht damit aufhalten muss, dauernd was auf dem Stack hin und her zu packen und zu springen.

Manche Dinge kann der Compiler nicht wissen, da muss man eben selber dran denken, wenn man Laufzeit-Optimiert programmieren will. Z.B., immer den wahrscheinlicheren Teil einer Abfrage als erstes abzuhandeln, so dass ein Sprung weniger von nöten ist. Fliesszahlen sollten möglichst vermieden werden usw.

Vermutlich wird ihm sauberer expliziter Code auch einfacher fallen, als tief geschachtelte Statements.

Wie gesagt, für die Laufzeit sind tief geschachtelte Statements sogar erstmal besser als Funktionsaufrufe. Aber, hallo, das ist ohnehin nur im harten Echtzeitbereich interessant. Und leider wird da in der Tat die Laufzeit gerne mal als Totschlagargument gegen gut strukturierten Code benutzt (ich muss es wissen, ich arbeite in dem Bereich *gna*) Aber selbst da setzt sich langsam die Erkenntnis durch, dass man sich dadurch zu viele andere schwer lösbare Probleme einhandelt, und dass die Laufzeitoptimierung erst der zweite - und meist gar nicht nötige - Schritt ist.

Ciao
Stefanie

0 53

C-Arrays und Stringverarbeitung

minicrispie
  • programmiertechnik
  1. 0
    minicrispie
  2. 0
    Vinzenz Mai
    1. 0
      minicrispie
      1. 0
        Vinzenz Mai
        1. 0
          minicrispie
          1. 0
            Vinzenz Mai
            1. 0
              minicrispie
              1. 0
                Vinzenz Mai
              2. 0
                dedlfix
                1. 0
                  minicrispie
                  1. 0
                    Vinzenz Mai
            2. 0

              Gute und schlechte Übersetzungen

              Der Martin
              • sonstiges
              1. 0
                Vinzenz Mai
                1. 0
                  Tom
                2. 0
                  Der Martin
                  1. 0
                    Vinzenz Mai
          2. 0
            Vinzenz Mai
            1. 0
              minicrispie
              1. 0
                Vinzenz Mai
                1. 0
                  minicrispie
                  1. 0
                    Vinzenz Mai
    2. 0
      hotti
      1. 0
        Vinzenz Mai
        1. 0
          hotti
      2. 0
        minicrispie
        1. 2
          Multi
          1. 0
            minicrispie
            1. 1
              Vinzenz Mai
            2. 0
              Multi
    3. 0
      Stefanie
      1. 0
        Harlequin
        1. 0
          Stefanie
          1. 0
            Harlequin
            1. 0
              Tom
            2. 0
              Vinzenz Mai
      2. 0
        Der Martin
        1. 0
          Tom
          1. 0

            Strafe für schwer Lesbares

            Kai345
            • menschelei
            1. 0
              Tom
          2. 0
            Der Martin
          3. 0
            Stefanie
            1. 0
              Harlequin
            2. 0
              Tom
              1. 0
                Stefanie
                1. 0
                  Tom
      3. 0
        Vinzenz Mai
        1. 0
          Tom
  3. 0
    Vinzenz Mai
    1. 0
      minicrispie
      1. 1
        Stefanie
  4. 0
    stareagle
    1. 0
      minicrispie