Informatik

Programmiersprachen

Mit den ersten universellen Digitalcomputern in den 1940er-Jahren wurden auch erstmals Sprachen benötigt, um diesen Computern Anweisungen zu erteilen. Seither haben sich viele verschiedene Familien von Programmiersprachen entwickelt:

Stammbaum geläufiger Programmiersprachen

Kompilierte Sprachen

Um die ganze Geschwindigkeit eines Computers ausnutzen zu können, werden Programmiersprachen zuerst in Maschinensprache übersetzt («kompiliert»). Dadurch erhält der Computer die Anweisungen beim Ausführen direkt im erwarteten Format.

Kompilierte Sprachen werden vor allem zur Entwicklung von Betriebssystemen (wie Windows, macOS, Linux), Hardware-Treibern und anderem Code, der direkt mit Hardware interagiert, und für Apps verwendet, bei welchen Geschwindigkeit zentral ist (wie z.B. Ihr Webbrowser).

Bekannte Sprachen, die meist kompiliert werden, sind:

Java, C# und Rust wurden jeweils als Reaktion auf C und C++ entwickelt, um bekannte Schwachstellen zu vermeiden, die entstehen, wenn durch die Nähe zur Maschinensprache und aus Geschwindigkeitsgründen darauf verzichtet wird, zu überprüfen, ob eine Anweisung auch Sinn macht (dadurch kann z.B. Code überschrieben werden und das Programm unerwartet etwas ganz anderes machen).

Interpretierte Sprachen

Interpretierte Sprachen verzichten auf die teilweise zeitaufwändige Übersetzung des Programms in Maschinensprache und verwenden stattdessen eine separate App, welche das Programm Anweisung für Anweisung durcharbeitet.

Bekannte Sprachen, die meist interpretiert werden, sind:

Syntax

Programmiersprachen sind syntaktisch einfacher aufgebaut als gesprochene Sprachen. In gängiger Form werden meist nur Verben (im Imperativ) und Objekte verwendet.

Bei Präfix-notierten Sprachen steht dabei das Verb vor den Objekten (wie in der Mathematik bei \(s i n \), \(l o g \), ...), bei Infix-notierten Sprachen steht das Verb dazwischen (wie in der Mathematik bei den Operationen \(+\), \(-\), ...) und bei Postfix-notierten Sprachen steht das Verb am Ende.

Während für mathematische Ausdrücke natürlicherweise oft Infix-Notation verwendet wird, hat sich ansonsten eine Präfix-Notation weitgehend durchgesetzt.

Bei den folgenden Beispielen wird jeweils der Ausdruck «Hallo, Welt!» ausgegeben, wenn die Variable freundlich gesetzt ist, und in der Variable x der Wert von \(1 +2 \cdot 3 \) gespeichert:

Neuere Programmiersprachen orientieren sich oft an vorangegangenen, daher ergeben sich bezüglich Interpretation/Kompilation und Syntax über Zeit nachvollziehbare Verwandtschaften:

Stammbaum geläufiger Programmiersprachen