5.2.1 Sprachgenerationen

1. Generation: Maschinensprache

Diese Generation (auch Maschinencode genannt) ist der direkt auf dem Prozessor ausgeführte Binärcode. Jede Operation wird durch 1 und 0 dargestellt, und die Menge der verfügbaren Operationen stellen den Befehlssatz des Prozessors dar. Die Operanden werden ebenfalls binär dargestellt.

2. Generation: Assembler

Assembler ist die erste Abstraktionsstufe des Maschinencodes. Die Zahlencodes wurden durch Symbole (Mnemonics) ersetzt und statt Speicheradressen konnte man nun Register (Speicherzellen) benutzten. So erfolgt die Addition dadurch, dass zunächst die beiden Operanden in die Speicherzellen geschoben werden (MOV R0 0010) und dann die Addition durchgeführt wird (ADD R0 R1).

3. Generation: High Level Language (Höhere Programmiersprachen)

Ein weiterer Abstraktionsschritt vollzog sich mit der Entwicklung der dritten Generation, den Höheren Programmiersprachen. Es wurden Variablen eingeführt und der Quellcode dadurch deutlich lesbarer. Die meisten eingesetzten Programmiersprachen sind Sprachen der dritten Generation, allerdings hat zusätzlich bei einigen Sprachen eine Weiterentwicklung zur objektorientierten (OO) Sprache stattgefunden. Deshalb wird oft auch von OO-Sprachen oder OO-Generation gesprochen. Beispiele für objektorientierte Sprachen sind Java und C++. Sprachen wie Pascal, PHP oder Perl unterstützen zum Teil auch die objektorientierte Programmierung, aber zählen nicht zu den objektorientierten Sprachen, da ihnen die Objektorientierung nicht zugrunde liegt.

4. Generation: 4GL (Forth Generation Language)

Die Sprachen der vierten Generation abstrahieren weiter auf eine ergebnisorientierte Beschreibung. Die typische Sprache ist die Structured Query Language (SQL), die für den Zugriff auf Datenbanken eingesetzt wird. Im Gegensatz zu 3GL-Sprachen beschreibt man das gewünschte Ergebnis ("Gib mir alle Mitarbeiter, die länger als 6 Monate hier arbeiten") und sagt nicht, welche Schritte dazu notwendig ist, wie z.B. das Öffnen einer Datei.

Die 4GL-Sprachen werden oft innerhalb von Sprachen der dritten Generation benutzt, um Ergebnisse aus den Datenbanken zu holen.

5. Generation: VHLL (Very High Level Language)

Die Sprachen der fünften Generation erlauben die Beschreibung von Sachverhalten und Problemen. Wie das Problem gelöst wird, kann dem System zum großen Teil selbst überlassen werden. Die bekannteste Programmiersprache dieser Generation ist PROLOG.