Flag (Informatik)



Mit Flag [flæg] (auf Deutsch etwa Markierung; in SPSen auch „Merker“) wird ein Statusindikator bezeichnet, der als Hilfsmittel zur Kennzeichnung bestimmter Zustände benutzt werden kann. Ein Flag kann gesetzt, gelöscht oder geprüft werden.

Inhaltsverzeichnis

Etymologie


Der englische Begriff Flag ist verwandt mit deutsch Flagge, sollte jedoch nie so übersetzt werden. In der englischen Sprache hat sich eine erweiterte Begriffsbedeutung herausgebildet, bei der to flag nicht nur Flagge zeigen, setzen, hochziehen bedeutet, sondern allgemeiner signalisieren und heranwinken meint (to flag down a taxi, ein Taxi heranwinken). Dies geht vermutlich auf den Brauch in den ländlichen Gebieten der USA zurück, am Briefkasten an der (vom Haus entfernten) Grundstückszufahrt eine kleine (rote) Flagge anzubringen, die hochgedrückt wurde, wenn neue Post eingelegt wurde (eingehend oder ausgehend). Statt des umständlicheren Begriffs der binären Semaphore für solche Signalisierungseinrichtungen verbreitete sich der Begriff Flag – die Flaggenform und Bezeichnung als (binäre) Semaphore geht auf die optische Telegrafie und das Winkeralphabet zurück.

Abgrenzung


Flags im Prozessor


Ein Flag kennzeichnet zum Beispiel bei arithmetischen Berechnungen den Übertrag (Carry-Flag) oder den Überlauf (Overflow-Flag), siehe auch Statusregister.

Flags in der Programmierung


In der Programmierung können Flags zum Beispiel das Vorliegen einer Fehlerbedingung in einem Segment an ein anderes Programmsegment übermitteln oder Nutzerrechte realisieren.

Welches Datenformat zur Repräsentation eines Flags verwendet wird, hängt dabei von der Implementierung ab: Dabei lässt sich ein Flag in vielen Programmiersprachen über eine Boolesche Variable realisieren. Meist werden die binären Werte 0 und 1 oder für den Menschen verständlichere Varianten wie „Gesetzt“ und „Nicht gesetzt“ verwendet.

Sollen mehr als zwei Zustände dargestellt werden, wird dies meist nicht als „Flag“, sondern als Status­variable/​‑konstante bezeichnet. Aus der englischen Sprache findet sich in der Programmierung für synchronisierende Statusvariablen auch der Begriff (binäre) Semaphore bzw. Mutex locks.

Präprozessor-Flag

Mitunter werden Merker auch für bedingte Kompilierung eines Quellcodes verwendet; sehr gebräuchlich ist dies vor allem in den Sprachen C und C++:

#define COMPILE_FLAG
// ...
#ifdef COMPILE_FLAG
  // Code-Block 1, der ins Programm einfliesst, wenn COMPILE_FLAG gefunden wird.
#else
  // Code-Block 2, der stattdessen einfliesst, wenn COMPILE_FLAG _nicht_ gefunden wird.
#endif

Flags in der Datenübertragung


Bei der Übertragung von Daten ist mitunter eine Signalisierung bestimmter Zustände oder Signaleigenschaften notwendig. Anstatt gesonderter Leitungen können bestimmte Bitmuster eingesetzt werden, die dann „Zustands-Flags“ sind. Insbesondere verbreitet ist die Datenpräambel, um den Beginn einer Übertragung zu signalisieren und dem Empfänger eine Synchronisierung zu ermöglichen, sowie das Start- und das Stoppbit.

Durch geeignete Kodierung der zu übertragenden Daten kann es Bitmuster geben, die im Nutzdatenstrom nicht vorkommen können. Statt zur Fehler­erken­nung/​‑kor­rektur können diese als Steuersignale verwendet werden.










Kategorien: Rechnerarchitektur | Datentyp




Stand der Informationen: 23.11.2020 12:24:50 CET

Quelle: Wikipedia (Autoren [Versionsgeschichte])    Lizenz: CC-BY-SA-3.0

Veränderungen: Alle Bilder und die meisten Designelemente, die mit ihnen in Verbindung stehen, wurden entfernt. Icons wurden teilweise durch FontAwesome-Icons ersetzt. Einige Vorlagen wurden entfernt (wie „Lesenswerter Artikel“, „Exzellenter Artikel“) oder umgeschrieben. CSS-Klassen wurden zum Großteil entfernt oder vereinheitlicht.
Wikipedia spezifische Links, die nicht zu Artikeln oder Kategorien führen (wie „Redlink“, „Bearbeiten-Links“, „Portal-Links“) wurden entfernt. Alle externen Links haben ein zusätzliches FontAwesome Icon erhalten. Neben weiteren kleinen Designanpassungen wurden Media-Container, Karten, Navigationsboxen, gesprochene Versionen & Geo-Mikroformate entfernt.

Wichtiger Hinweis Da die gegebenen Inhalte zum angegebenen Zeitpunkt maschinell von Wikipedia übernommen wurden, war und ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.org nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein oder Fehler in der Darstellung vorliegen, bitten wir Sie darum uns per zu kontaktieren: E-Mail.
Beachten Sie auch : Impressum & Datenschutzerklärung.