#Codierung

#Morsecode #Klangprogrammierung #Algorithmus #Software #Hardware #Interface #Decodierung

Von genetischem Code (siehe Themenbereich #GenetischerCode) bis zur Notation von Musik, von Kommunikationssystemen für sinnesbeeinträchtigte Menschen, wie beispielsweise der Gebärdensprache, bis zum #Morsecode, von ethischen Richtlinien bis zu sozialen Codes – der Begriff »Code« mag oberflächlich betrachtet wiedererkennbare und vertraute Vorgänge beschreiben, aber was bedeutet er in Hinblick auf #Programmieren (siehe Themenbereich #Arbeit&Produktion) und Datenverarbeitung?

Das »Lexikon der Informatik« definiert Code als »eine Regel, mit der eine Nachricht von einer symbolischen Form (dem Quellalphabet) in eine andere (das Zielalphabet) überführt wird«. [1] Demzufolge kann Code also als ein Regelsatz beschrieben werden, »der das, was eingegeben wird – den Input – von einem Zustand in einen anderen überführt und dann eine Operation ausführt«. [2] Diese Funktionsweise stellt ein Hauptmerkmal des Codes dar: Er ist sowohl lesbar als auch ausführbar; er ist gleichzeitig Medium und Anweisung. Diese grundlegende Eigenschaft macht den Unterschied zwischen Code und herkömmlichen Sprachen aus: Zweitere können gelesen oder geschrieben werden, aber alleine dadurch bewirken sie keine Veränderung. In diesem Sinne ist Computercode »die erste Sprache, die tatsächlich tut, was sie sagt – er ist eine Maschine, durch die Bedeutung in die Tat umgesetzt wird.« [3]

Ein weiteres entscheidendes Merkmal des Computercodes ist seine trügerische Unsichtbarkeit. Code bleibt für gewöhnlich im Verborgenen; er selbst ist immateriell und normalerweise unsichtbarer Bestandteil einer Maschine, hat aber sichtbare, konkrete und greifbare Auswirkungen auf die Welt. So wären bei einem programmierten Klangwerk beispielsweise die verschiedenen Klänge oder die Komposition der Output bzw. das Ergebnis einer einzelnen Zeile oder vieler Zeilen Codes (#Klangprogrammierung).

Ähnlich wie der Begriff Code wird auch das Wort #Algorithmus oft mit Datenverarbeitung und Programmierung in Verbindung gebracht, obwohl die Definition eines Algorithmus, als einer Abfolge von Handlungsanweisungen, in vielen Bereichen Anwendung finden könnte. Ein Algorithmus ist ein Satz von Regeln, mit denen definiert wird, wie eine Problemstellung zu lösen oder ein Vorgang auszuführen ist. In diesem Sinne könnten ein Kochrezept oder eine Bauanleitung ebenfalls als Algorithmus betrachtet werden. Im Computerbereich werden solche Regelsätze bzw. die Abfolge einzelner Schritte dazu benutzt, Daten zu verarbeiten und, wie bereits beschrieben, einen Output zu produzieren.

Algorithmen und Code machen auch den unsichtbaren Teil eines Computersystems aus, der für gewöhnlich unter dem Begriff #Software zusammengefasst wird, »einer allgemeinen Bezeichnung für die Komponenten eines Computersystems, die immateriell und nicht physisch greifbar sind.« [4] Im Gegensatz dazu, versteht man unter #Hardware die technischen Bauteile, aus denen sich ein Computer zusammensetzt, darunter beispielsweise das Mainboard. Damit zwischen Software und Hardware Informationen ausgetauscht werden können, ist ein drittes Element notwendig: das #Interface. Es kann auch als Verbindung zwischen Software, Hardware und dem Menschen fungieren. Um zu verstehen, wie dieser Austausch funktioniert, muss man nur an den Schalter zum Ein- und Ausschalten eines Geräts denken: Der Schalter ist sozusagen das Interface zwischen dem Menschen und den elektrischen Schaltkreisen des Geräts. Wenn man ihn betätigt, schaltet sich das Gerät ein oder aus.

Selbst bei weitverbreiteten, einfachen Anwendungen, wie beispielsweise dem Verschicken einer SMS, führt der Code eine Vielzahl algorithmischer Vorgänge aus. Im Computerbereich steht das Codieren (#Codierung) für einen Vorgang, bei dem eine Zeichenfolge in ein bestimmtes Format umgewandelt wird, mit dem Daten zweckmäßig übertragen oder gespeichert werden können. Um codierte Daten wieder in die ursprüngliche Zeichenfolge umzuwandeln, muss der umgekehrte Prozess angewendet werden, die #Decodierung. Beides sind gängige Verfahren, die zur Übertragung, Vernetzung und Speicherung von Daten sowie vor allem im Zusammenhang mit drahtlosen Kommunikationssystemen eingesetzt werden. Mit diesen und auch anderen Prozessen, die auf Computercode basieren, ist es heute möglich, eine Vielzahl unterschiedlicher Vorgänge in Sekundenschnelle zu verarbeiten und zu steuern und so neue Handlungsfelder im gesellschaftlichen, wirtschaftlichen und kulturellen Bereich zu erschließen und zu gestalten.

Blanca Giménez

 

[1] Andrew Butterfield und Gerard Ekembe Ngondi, »A Dictionary of Computer Science«, 7. Aufl., Oxford University Press, Oxford, 2016, S. 93.

[2] Rob Kitchin und Martin Dodge, »Code/Space: Software and Everyday Life«, The MIT Press, Cambridge (MA), London, 2011, S. 25.

[3] Alexander R. Galloway, »Protocol: How Control Exists after Decentralization«, The MIT Press, Cambridge (MA), London, 2004, S. 166.

[4] Susan M. Hockey, »A Dictionary of Computing«, 2. Aufl., Oxford University Press, Oxford, 1986, S. 352.