I.

Software und ihre Ursprünge

Software ist eine erstaunliche Innovation, die wir bei der Nutzung von Computern, Smartphones, Videospielkonsolen und vielen anderen elektronischen Geräten verwenden. Manche Softwareanwendungen sind recht simpel und nur für wenige Funktionen konzipiert, während andere Software hochkompliziert ist und immense Datenmengen verwaltet.

Warum gibt es überhaupt Software?

Die kurze Antwort lautet: Computer verstehen die menschliche Sprache nicht – und Programmierer möchten Computer bauen, die sich einfach bedienen lassen. Es ist offensichtlich, dass Menschen und Computer nicht dieselbe Sprache sprechen. Deshalb gibt es Software als Schnittstelle zwischen Hardware und Benutzer, die uns bei der Ausführung von Aufgaben mit dem Computer unterstützt. Lassen Sie uns etwas näher darauf eingehen.

Welche Sprache verstehen Computer?

Computer verstehen nur binäre Informationen, die hauptsächlich in Form von elektrischen Signalen dargestellt werden, nämlich EIN (Hochspannung) oder AUS (Niederspannung), und stellen alles als eine Folge von Einsen und Nullen (EIN und AUS) dar. Im Allgemeinen steht eine logische „1“ für eine höhere Spannung, z. B. 5 Volt, die als HIGH-Wert bezeichnet wird, während eine logische „0“ für eine niedrige Spannung steht, wie z. B. 0 Volt oder Masse, die als LOW-Wert bezeichnet wird. Diese Folge (Reihe) von Einsen und Nullen wird Binärformat oder Binärcode genannt.

Da Computer unsere Sprache, Fotos, Videos, Texte, Programme oder Musik nicht so verstehen wie wir, müssen alle Daten in Binärcode konvertiert werden, damit der Computer sie verarbeiten kann.

Moderne Computer verfügen über Codierungssysteme, die unsere Eingaben in Maschinencode übersetzen. Ein einfaches Beispiel: Wenn Sie auf der Tastatur den Buchstaben „A“ eingeben, wird er vom UTF-8-Zeichencodierungssystem in Maschinencode mit dem Wert 01000001 konvertiert.

Ein Beispiel für die Übersetzung von binärem Code
Ein Beispiel für die Übersetzung von binärem Code

Stellen Sie sich vor, wie viele Einsen und Nullen nötig sind, um ein Buch im Binärcode darzustellen. Stellen Sie sich vor, wie viele Einsen und Nullen nötig sind, um ein Foto oder ein Lied im Binärcode darzustellen. Tatsächlich kann es sehr komplex und mühsam sein, jedes Bild, jeden Text, jedes Programm und jedes Musikstück in Binärcode in einer Reihe aus Einsen und Nullen darzustellen. Moderne Computer tun dies automatisch und der Prozess ist für die meisten Benutzer unsichtbar.

Versuchen Sie, sich vorzustellen, wie mühsam dieser Prozess in der Vergangenheit war, als die ersten Programmierer alles von Hand in Binärcode umwandeln mussten.

Welche Rolle spielen Programmierer bei der Entwicklung von Software?

Unabhängig von der Sprache, in der wir unsere Programme schreiben, müssen sie im Maschinencode geschrieben werden, damit der Computer sie ausführen kann.

Als die ersten „modernen“ elektrisch betriebenen Computer entwickelt wurden, erkannten die Programmierer, dass die begrenzte Geschwindigkeit und Speicherkapazität dieser Geräte eine Grenze für ihre Vorstellungskraft und für die Nutzererfahrung von Laien darstellte.

Dies zwang sie, „Sprachübersetzer“ zu programmieren, die ihnen beim Schreiben von Maschinencode helfen würden. In Computern kommen drei Hauptkategorien von Sprachübersetzern zum Einsatz: Assembler, Compiler und Interpreter. Diese erläutern wir im nächsten Abschnitt.

Programmierer verwenden zum Erstellen von Software Programmiersprachen. Es gibt viele von ihnen und sie haben sich im Laufe der Jahre weiterentwickelt. Manche Fachleute sprechen von fünf Generationen von Programmiersprachen.

Programmiersprachen werden in zwei Ebenen unterteilt: niedrig und hoch. Die ersten beiden Generationen gehören zu den Programmiersprachen auf niedriger Ebene (low-level), die drei folgenden Generationen zu den Programmiersprachen auf hoher Ebene (high-level).

Jetzt haben wir die Grundlage für den nächsten Abschnitt gelegt, in dem wir etwas über moderne Programmiersprachen auf niedriger und hoher Ebene lernen.

Next section
II. Programmiersprachen und Softwareentwicklung