Was ist ein Unterprogramm?

3 Antworten

Früher so um 1957 gab es nur prozedurale und lineare Programmiersprachen aber bereits hier sind Unterprogramme (Subroutienen) in Mode gewesen, weil sie den gefürchteten Spaghetticode vermeiden helfen (Unstrukturierter Quelltext der nur sehr mühsam zu warten [Erweitern/Ändern] ist).

In Basic wurde dazu der Befehl GoSub entwickelt um aus einer Stelle im Quelltext auf ein öfter verwendetes Stück Code zurückgreifen das aber ohne Goto zur gewünschten Zeilennummer findet, wobei der Interpreter gar nicht wissen konnte welche die Zeile war. Also hat man dem Programm intern einen Wegweiser zugewiesen.

Heruntergebrochen auf Assembler der JMP(Jump) Befehl der ein gutes Duzend Kathegorien aufweist, jenachdem welche Art von Jump benötigt wird.

Beispiel:

Befehl: Jxxx Adr (Jump on Condition)
Bedingter Sprung zur Zieladresse

Befehl:  Sprung wenn... Jump if ...   Geprüfte Statusflags:
JA/JNBE  größer / nicht-kleiner-gleich   CF = 0 und ZF = 0
  above / not-below-equal
JAE/JNB  größer-gleich / nicht-kleiner   CF = 0
  above-equal / not-below
JB/JNAE  kleiner / nicht-größer-gleich   CF = 1
  below / not-above-equal
JBE/JNA  kleiner-gleich / nicht-größer   CF = 1 oder ZF = 1
  below-equal / not-equal
JE/JZ  gleich / null     ZF = 1
  equal / zero
JG/JNLE  größer / nicht-kleiner-gleich   ZF = 0
  greater / not-less-equal
JGE/JNL  größer-gleich / nicht-kleiner   SF gleich OF
  greater-equal / not-less
JL/JNGE  kleiner / nicht-größer-gleich   SF ungleich OF
  less / not-greater-equal
JLE/JNG  kleiner-gleich / nicht-größer   ZF = 1
  less-equal / not-greater
JNE/JNZ  nicht-gleich / nicht-null   ZF = 0
  not-equal / not-zero
JC  Carry Flag (CF) gesetzt    CF = 1
  Carry
JNC  Carry Flag (CF) nicht gesetzt   CF = 0
  not-Carry
JNP/JPO  keine-Parität / Parität ungerade  PF = 0
  not-Parity / Parity-odd
JNO  kein überlauf     OF = 0
  not-Overflow
JNS  kein Vorzeichen (positiv)   SF = 0
  not-Sign
JO  überlauf     OF = 1
  Overflow
JP/JPE  Parität / Parität-gerade   PF = 1
  Parity / Parity-even

In Hochsprachen findet man sowas nicht.

Heute der Tage ist OOP (Bing) der Standard, wie Unterprogramme verschachtelt werden, ohne eine Funktion zu benötigen, jedoch Methoden und das ist ein gravierender Unterschied.

Me hope this makes clear me is the asshole who make your game so hard.

·gerid3d·

c my site, check all subdomains, if under trafic try 20min later

Woher ich das weiß:Berufserfahrung

viele programme laufen nicht linear ab. das bedeutet, dass bestimmte operationen innerhalb eines programmes quasi ein eigenes kleines programm sind.

man kann sich das wie bei einer homepage vorstellen, wo die page quasi ja auch aus mehreren seiten besteht.

lg, anna

Eine Programmfunktion (im Prinzip ein Programm), das nicht eigenständig auf dem Computer ablaufen kann, sondern noch ein übergesltülptes Rahmenprogramm benötigt.

Woher ich das weiß:Studium / Ausbildung