Skip to main content

White Space

Was ist White Space?

In der Informatik hat der Begriff White Space zwei Bedeutungen. So handelt es sich sowohl um eine Programmiersprache als auch um die Benennung von Textzeichen, die im Editor als leere Fläche (engl. white space) erscheinen.

Whitespace

Die Programmiersprache White Space

Bei White Space handelt es sich um eine verhältnismäßig junge Programmiersprache. Der Programmierer Chris Morris und der Informatik-Dozent Edwin Brady entwickelten sie Ende 2002. White Space zählt zu den imperativen sowie den sogenannten esoterischen Programmiersprachen. Die Idee kam ursprünglich von Bjarne Stroustrup, Informatik-Professor an der A&M University in Texas: Mathematiker verwenden für die Multiplikation in der Regel ein Leerzeichen statt eines Malzeichens. Stroustrup überlegte, dem Leerzeichen in C++2000 die entsprechende rechnerische Bedeutung zuzuordnen.

Anders als in den gängigen Programmiersprachen arbeitet White Space mit Befehlen und Steueranweisungen, die sich aus Folgen von Leerzeichen, Zeilenumbrüchen und Tabs definieren. Lediglich für Daten verwendet das Programm das klassische Dualsystem. Die Abbildung des Programmcodes erfolgt über ein dreiwertiges Stellensystem. Grundsätzlich beruhen die Operationen der Programmiersprache auf ganzen Zahlen in beliebiger Bit-Länge. Anhand von ASCII-Code-Werten können darüber hinaus Zeichen ausgegeben werden. Ähnlichkeiten zeigen sich im Vergleich mit make-Dateien und Python-Programmen, in denen Tabulatorzeichen am Zeilenbeginn den Programmablauf steuern.

Die Befehle werden in fünf Gruppen mit festgelegten Zeichen eingeteilt:

  • Das Zeichen l steht für den Stack-Zugriff, wobei der englische Begriff Stack für den Stapelspeicher einer dynamischen Datenstruktur verwendet wird.
  • Für Rechenfunktionen verwendet das Programm das Zeichen tl.
  • Das Zeichen u steht für Bedingungen, Schleifen und Sprünge.
  • Für die Ein- und Ausgabe von Werten ist das Zeichen tu vorgesehen.
  • Zu guter Letzt gibt es noch das Zeichen tt für den Heap-Speicher-Zugriff.

Der Heap-Speicher ist ein dynamischer Speicherbereich, der von bestimmten Programmen während ihrer Laufzeit verwendet wird.

Die im Programm verwendeten Daten werden im dualen System dargestellt. Positive Werte werden mit einem l an erster Stelle gekennzeichnet, negative mit einem t. Anschließend steht das l für 0 und t für 1. Grundsätzlich können Zahlen jede Bitlänge aufweisen; Interpreter und Compiler sind allerdings in der Lage, eine obere Grenze festzulegen.

Was ist eine esoterische Programmiersprache?

Mit dem Begriff “Esoterik” werden allgemein “abwegige Pseudo-Wissenschaften” bezeichnet. Esoterische Programmiersprachen haben diesen Namen erhalten, weil sie aus Sicht außenstehender Personen wenig sinnvoll und nicht nachvollziehbar sind. Sie werden nicht für den praktischen Nutzen entwickelt, sondern sollen dazu dienen, ausgefallene sprachliche Konzepte umzusetzen. Diese Programmiersprachen lassen sich in der Regel nicht einfach bedienen. Gründe für ihre Entwicklung können das Austesten neuer Ideen oder das Aufzeigen erheblicher Vereinfachung sein. Manchmal handelt es sich schlicht um einen wissenschaftlichen Gag, in anderen Fällen ist das Ziel, dass für die Sprache nur ein sehr kleiner Compiler benötigt wird. Ein anschauliches Beispiel für den zuletzt genannten Punkt ist das Programm Brainfuck.

Die Vorteile von White Space

Der Großteil der Programmiersprachen ignoriert Leerzeichen; für das menschliche Auge sind sie jedoch sehr hilfreich, da sie den programmierten Code strukturieren und besser lesbar machen. Weiterhin soll es für Außenstehende nicht möglich sein, den gegebenenfalls entwendeten Code zu entschlüsseln. Die Programmiersprache eignet sich sehr gut dafür, Programmcode in gewöhnlichem Text zu verbergen – ähnlich der Steganographie. Als weiteren Vorteil nennen die Entwickler das signifikante Einsparen von Tinte und Toner, falls die Quelltexte in großen Mengen ausgedruckt werden.

Mögliche Programmierumgebungen

Vim ist ein Open-Source-Editor mit einem integrierten Syntax-Highlighting für White Space. Je nach Bedeutung der Zeichenkombinationen werden diese unterschiedlich dargestellt, beispielsweise durch Farben, Schriftarten usw. Damit wird das Programmieren deutlich vereinfacht. Weiterhin stehen Emacs zur Verfügung. Dabei handelt es sich um eine Familie von Texteditoren,
die hilfreich für die Erstellung von Quelltexten ist. Der sed (Stream Editor) von Unix unterstützt die Bearbeitung Text-Datenströmen, wobei die ursprüngliche Datei – im Vergleich zum Texteditor – nicht verändert wird. sed wird via Skript gesteuert, ist also kein interaktives Werkzeug.

Da White Space mit trinär codierten maschinellen Befehlen arbeitet, ist der Umgang damit ziemlich kompliziert. Aus diesem Grund verwenden Programmierer für die Übertragung in die Maschinensprache einen entsprechend zweckmäßigen Assembler-Dialekt.

White Space als Bezeichnung für leere Flächen

Diese Art Zeichen werden im Editor und auch in der Textverarbeitung als Leerzeichen, zur Gruppierung von Ziffern und zur Vermeidung oder Erstellung von Umbrüchen verwendet. Der Betrachter sieht sie lediglich als leere Flächen, dennoch benötigen diese Zeichen Speicherplatz im Dokument, was sich negativ auf Ladezeiten auswirken kann. In den üblichen Programmiersprachen dienen diese Leerräume zur Trennung von einzelnen Wörtern und Variablenbezeichnungen.

Der Unicode zählt 26 Zeichen zu den Leerräumen, die als White_Space gekennzeichnet sind. Dazu gehören unter anderem:

  • Tabulatoren, Vorschübe und der Wagenrücklauf,
  • das Leerzeichen und das geschützte Leerzeichen,
  • Zeilen- und Absatztrenner,
  • das mathematische und das ideographische Leerzeichen,

um nur einige zu nennen.

Sie haben noch Fragen?

Kontaktieren Sie uns