Seite 1 von 1

Programmablauf verstehen a.k.a "Wie lest ihr Code"

Verfasst: Freitag 27. Februar 2015, 14:15
von robocode
Hallo Leute,
ich habe eine etwas "merkwürdige" Frage die ich mir als Programmieranfänger jedoch immer wieder stelle. Ich tue mir immer wieder schwer wenn ich Code lese wirklich zu verstehen, wie das Programm sequenziell abläuft. Meist sind Python Programme ja so aufgebaut, dass Funktionen nacheinander definiert werden und dann am Ende eine main function aufgerufen wird die einen Funktionsablauf startet.
Mir geht es darum eine möglichst strukturierte Vorgehensweise zu finden, wie ich mich Stück für Stück durch einen ganzen Code hangeln kann um den gesamten Ablauf zu verstehen.
Habt ihr dafür irgendwelche Anregungen?

Vielen Dank
robocode

Re: Programmablauf verstehen a.k.a "Wie lest ihr Code"

Verfasst: Freitag 27. Februar 2015, 14:29
von Sirius3
@robocode: es gibt entweder das Top-Down-Vorgehen oder eben Bottom-Up. Entweder schaust Du Dir die main an und schaust, welche Funktionen aufgerufen werden, oder Du fängst an, zu verstehen, was einzelne Funktionen machen und wie sie zu komplexeren Funktionen zusammengesetzt werden.

Re: Programmablauf verstehen a.k.a "Wie lest ihr Code"

Verfasst: Freitag 27. Februar 2015, 14:40
von MagBen
Ich bekomme immer wieder die Aufgabe Jahrzehnte alte Programme zu "modernisieren", also in Python und C++ neu zu schreiben, die Programme sind in diversen Programmiersprachen (Visual Basic, DBase, Fortran, Java). Die Dokumentation ist im Wesentlichen der Programmcode. Folgende Vorgehensweise hat sich dabei bewährt:
a) Mit dem Programmierer reden (wenn noch verfügbar).
b) Das Programm in einem Debugger laufen lassen und Breakpoints setzen (wenn die Programmierumgebung das ermöglicht).
c) Debugausgaben beim Betreten und Verlassen von Methoden, funktioniert bei allen Programmiersprachen.
d) Den Programmcode ausdrucken und mit Textmarkern bearbeiten.
e) "Understand" von scitools

Re: Programmablauf verstehen a.k.a "Wie lest ihr Code"

Verfasst: Freitag 27. Februar 2015, 15:09
von Hyperion
@MagBen (mit #Offtopic und #DissenAmFreitag): "modernisieren" in C++... omg :twisted:

Re: Programmablauf verstehen a.k.a "Wie lest ihr Code"

Verfasst: Freitag 27. Februar 2015, 18:16
von MagBen
Hyperion hat geschrieben:"modernisieren" in C++... omg
need for speed, der Rechner ist nie schnell genug

Re: Programmablauf verstehen a.k.a "Wie lest ihr Code"

Verfasst: Freitag 27. Februar 2015, 18:23
von BlackJack
@MagBen: Deswegen kann man trotzdem eine moderne Sprache zum modernisieren verwenden…

Re: Programmablauf verstehen a.k.a "Wie lest ihr Code"

Verfasst: Freitag 27. Februar 2015, 19:08
von MagBen
BlackJack hat geschrieben:Deswegen kann man trotzdem eine moderne Sprache zum modernisieren verwenden…
z.B. C++ 11
Im Ernst, womit meint Ihr wird heute 3D programmiert?
Womit ist man genauso schnell wie mit Fortran?
Ich weiß wie weit ich mit Numpy komme und ab wann ich den schnellen Code selbst schreiben muss.

Re: Programmablauf verstehen a.k.a "Wie lest ihr Code"

Verfasst: Freitag 27. Februar 2015, 19:36
von BlackJack
@MagBen: Im Ernst C++ ist keine moderne Sprache. Auch nicht wenn man da 11 hinter schreibt und noch mehr Komplexität drauf tackert. 3D wird mit allem möglichen programmiert. Ja, auch mit C++, aber eben nicht nur. Genau so schnell wie mit Fortran ist man mit C oder Assembler auch. Oder halt mit Fortran.

Re: Programmablauf verstehen a.k.a "Wie lest ihr Code"

Verfasst: Samstag 28. Februar 2015, 14:00
von Hyperion
Wie sieht es da eigentlich mit Rust aus? Das ist ja auf jeden Fall systemnah... ob das in Zukunft auch im 3D Sektor eingesetzt werden wird?

Re: Programmablauf verstehen a.k.a "Wie lest ihr Code"

Verfasst: Sonntag 8. März 2015, 09:00
von Leonidas
Hyperion hat geschrieben:Wie sieht es da eigentlich mit Rust aus? Das ist ja auf jeden Fall systemnah... ob das in Zukunft auch im 3D Sektor eingesetzt werden wird?
Also was ich so gehört habe scheinen Spielefirmen durchaus an Rust interessiert zu sein. Weil, das ist irgendwie auch einleuchtend: eine Sprache mit einem kostenlosen Compiler, mit Backing einer recht bekannten Organisation, Speichersicherheit ohne GC, (einigermaßen) Mainstream-Syntax…

Re: Programmablauf verstehen a.k.a "Wie lest ihr Code"

Verfasst: Sonntag 8. März 2015, 14:20
von Hyperion
Mitsuhiko arbeitet ja offenbar viel mit Rust in der Spieleindustrie. Laut seiner Blog Einträge aber eher im Backendbereich (Redis Anbindungen iirc)... interessant wird es wohl erst, wenn es eine 3D-Engine auf Rust Basis gibt oder zumindest ein solides Framework a la SDL.

Re: Programmablauf verstehen a.k.a "Wie lest ihr Code"

Verfasst: Montag 9. März 2015, 10:01
von Leonidas
Hyperion hat geschrieben:interessant wird es wohl erst, wenn es eine 3D-Engine auf Rust Basis gibt
Also wenn es sowas wie Piston gibt? ;)