Leerraum

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dieser Artikel erläutert den Begriff der Informatik, zur Typographie siehe Leerzeichen und Typografischer Weißraum.

Leerraum (fachsprachlich englisch auch Whitespace /'waɪtspeɪs/, Zwischenraumzeichen, Weißraum) ist in der Informatik eine Bezeichnung für Zeichen in einem Text, die im Texteditor oder Textverarbeitungsprogramm normalerweise nicht dargestellt werden und dennoch (Speicher-)Platz in Anspruch nehmen. Sie dienen vorrangig dazu, Wörter oder Zeilen voneinander abzugrenzen.

Je nach Kontext werden verschiedene Zeichen als Leerraum angesehen, fast immer zumindest Leerzeichen und Tabulatorzeichen, meist auch Zeilenumbrüche. Viele Programme bieten auch die Möglichkeit, diese Zeichen durch stellvertretende Formatierungsymbole (zum Beispiel „“ für Zeilenumbrüche, „·“ für Leerzeichen und „→“ oder „> “ für Tabulatoren) sicht- und unterscheidbar zu machen.

In der Programmierung kommt diesen Zeichen für gewöhnlich eine besondere Rolle zu. In verschiedenen Programmiersprachen können sie einzelne geschützte Wörter und ebenso Namen von Variablen voneinander trennen. Manche Programmiersprachen (etwa Python) verlangen eine spezielle Formatierung des Quellcodes durch Whitespace-Zeichen (Einrückung von Blöcken).

Bei der Zählung der Zeichen eines Textdokumentes wird der Leerraum manchmal nicht mitgezählt.

Reguläre Ausdrücke[Bearbeiten]

Für reguläre Ausdrücke sind zwei leicht abweichende Definitionen für die in der Zeichenklasse \s bzw. [:space:] als Leerraum angesehenen Zeichen verbreitet. In Perl-kompatiblen regulären Ausdrücken (PCRE) zählen mindestens das Leerzeichen (U+0020), der horizontale Tabulator (U+0009), der Zeilen- (U+000A) und Seitenvorschub (U+000C) sowie der Wagenrücklauf (U+000D) zum Leerraum.[1] In regulären Ausdrücken nach POSIX-Standard zählt zusätzlich der vertikale Tabulator (U+000B) zum Leerraum.[2] In beiden Fällen kommen je nach eingestelltem Locale evtl. weitere Zeichen dazu, im Japanischen beispielsweise das ideographische Leerzeichen (U+3000).[3]

Der ECMA-Standard und damit auch JavaScript trifft eine eigene Festlegung für die als Leerraum angesehenen Zeichen in regulären Ausdrücken. Sie schließt unter anderem das geschützte Leerzeichen (U+00A0), Byte Order Mark (U+FEFF) und alle im Unicode-Standard Version 3.0 als Leerraum definierten Zeichen ein.[4]

Unicode[Bearbeiten]

In Unicode sind jedem Codepoint, das heißt jedem Unicode-Zeichen mehrere Unicode-Eigenschaften zugeordnet. Unter anderem sind die Zeichen in allgemeine Kategorien (General_Category, gc) unterteilt. Die als Leerraum angesehenen Zeichen sind hier in der Kategorie für Steuerzeichen (Cc) sowie den drei Kategorien für Zeilen-, Absatz- und sonstige Trenner (Zl, Zp und Zs) enthalten. Eine Kategorie für Leerraum existiert nicht. Daneben wird jedes Zeichen einer Bidirektionalitäts-Klasse (Bidi_Class, bc) zugeordnet. Hier existiert eine Klasse mit dem Namen White_Space (WS) für die Verwendung innerhalb des Unicode-Bidi-Algorithmus, die allerdings nur verschiedene Leerzeichen beinhaltet. Zeichen wie Tabulatoren und Zeilenvorschübe zählen hier nicht als Leerraum sondern sind eigenen Bidirektionalitäts-Klassen für allgemeine Separatoren (CS), Segment- (S) und Absatztrenner (B) zugeordnet.

Zum Leerraum werden 26 Zeichen gezählt, die mit der Eigenschaft (Property) White_Space gekennzeichnet sind.[5]

Für die Verwendung in der Softwareentwicklung und insbesondere in Programmiersprachen definiert Unicode eine zweite Eigenschaft namens Pattern_White_Space (wörtlich „Muster-Leerraum“, nach den Mustern in regulären Ausdrücken) mit nur 11 Zeichen (U+0009 bis U+000D, U+0020, U+0085, U+200E, U+200F, U+2028 und U+2029). Hier fehlen insbesondere die geschützten und sprachspezifischen Leerzeichen.

Auch diese Aufzählung gilt nur als Empfehlung und kann von den Entwicklern der Programmiersprache abgeändert werden, wobei empfohlen wird, den Unicode-Standard als Grundlage für die abweichende Definition zu verwenden.[6]

Einzelnachweise[Bearbeiten]

  1. Perl Programming Documentation: Using character classes, 2000.
  2. The Open Group: Base Specifications: Locale Definition, 2004.
  3. The Open Group: Locales, 2010.
  4. ECMAScript Language Specification – ECMA-262 Edition 5.1, Juni 2011.
  5. Unicode: Häufig gestellte Fragen. Darin: „All the characters that have the White_Space property, also generically known as ‚whitespace characters‘.
  6. Unicode: Unicode Standard Annex #31: Identifier and Pattern Syntax. Darin: „Each programming language can define its own whitespace characters […] relative to the Unicode Pattern_White_Space […] characters, with some specified set of additions or subtractions.