Zum Inhalt springen

Label (Programmierung)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 23. Oktober 2008 um 17:36 Uhr durch Der Hakawati (Diskussion | Beiträge) (Plural-s wieder angehängt. Siehe Diskussionsseite...). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Ein Label (zu Deutsch: Sprungmarke) in einem Quellcode eines Computerprogramms ist eine durch einen Bezeichner eindeutig gekennzeichnete Marke, die üblicherweise als Sprungziel dient.

Labels in Assemblersprachen

Um in einer Assemblersprache z.B. Schleifen zu realisieren, kann meist relativ zum aktuellen Befehlszähler gesprungen werden – beispielsweise um 5 Befehle zurück. Dies ist aber sehr unflexibel: Wenn beispielsweise ein Befehl eingefügt oder entfernt wird, müssen alle relativen Sprünge, die über diese Stelle hinwegspringen, angepasst werden. Außderm ist dies schlecht lesbar, da es dann oft notwendig ist, einzelne Programmsequelzen Befehl für Befehl abzuzählen.

Um diese Probleme zu umgehen, gibt es Labels. Diese versehen einzelne Codestellen mit einem eindeutigen Bezeichner. So kann direkt zu diesem Label, d.h. zu dieser Codestelle gesprungen werden ohne, dass die oben beschriebene Probleme auftreten.

Beispiel in einer Pseudo-Assemblersprache:

mov $v0, 0
MeinLabel:                 ; hier wird ein Label mit dem Bezeichner "MeinLabel" gesetzt
  add $v0, $s0             ; Code im "Schleifenkörper"
  subi $t0, 1              ; Code im "Schleifenkörper"
bne $t0, $zero, MeinLabel  ; bedingter Sprung zum Label
; hier geht es weiter, wenn nicht gesprungen wird

Labels in höheren Programmiersprachen

Auch manche höhere Programmiersprachen – insbesonder ältere – bieten die Möglichkeit Labels zu setzen, um mit Hilfe direkter Sprünge (meistens goto genannt) an bestimmte Codestellen zu gelangen. Ihre Verwendung führt jedoch in größeren Programmen schnell zu unübersichtlichem, schwer lesbarem und schlecht wartbarem Quelltext (so genanntem Spaghetticode).

Moderne Programmiersprachen besitzen deshalb geeignete Kontrollanweisungen, die die Verwendung von Labels und direkten Sprüngen im Quelltext überflüssig machen, sodass sie in vielen Programmiersprachen gar nicht mehr existieren oder nur in sehr begrenztem Maße(z.B. in den case-Anweisungen von C#).

Labels in der Algorithmik

Der Begriff ist auch in deutschsprachigen Beschreibungen von Algorithmen gleichbedeutend mit Bezeichner bzw. Attribut zu finden. Beispielhafte Bedeutungspaare sind

  • gelabelt = gekennzeichnet und
  • Labels = Attribute/Kennzeichen.

Sonstige Verwendung des Begriffs Label in der Programmierung

Siehe auch