Was sind Generationen von Programmiersprachen?
Generationen von Programmiersprachen sind eine Möglichkeit, Computerprogrammiersprachen nach ihrer Gesamtentfernung vom tatsächlich generierten Maschinencode und in gewisser Weise nach ihrer Benutzerfreundlichkeit durch einen Programmierer zu klassifizieren. Es gibt drei allgemein anerkannte Generationen von Programmiersprachen und einige, deren Definitionen nicht eindeutig vereinbart sind. Eine Computerprogrammiersprache der ersten Generation ist reiner Maschinencode ohne Abstraktion. Sprachen der zweiten Generation sind abstrahierter Maschinencode, z. B. Assemblersprache, der an eine bestimmte Systemarchitektur gebunden ist, jedoch für den Menschen lesbar ist und kompiliert werden muss. Sprachen der dritten Generation sind die gebräuchlichste Form, einschließlich Standardsprachen wie C und Java®, während Sprachen der vierten Generation oder höher unterschiedliche Definitionen haben.
Als Generationen von Programmiersprachen zum ersten Mal zur Beschreibung von Sprachen erstellt wurden, wurde der Begriff hauptsächlich zur Bezeichnung von Sprachen der dritten Generation verwendet. Dies bedeutet, dass Sprachen der ersten und zweiten Generation nur als solche klassifiziert wurden, um die Fähigkeiten von Sprachen der dritten Generation hervorzuheben. Die vierte und fünfte Generation von Programmiersprachen wurden hauptsächlich als Begriffe für das Marketing für Sprachen verwendet, die sich in der Entwicklung befanden. Im Marketing und in einigen akademischen Bereichen werden nicht standardmäßige Sprachgenerationen mit höheren Nummern verwendet, um anzuzeigen, dass eine Sprache neuer ist oder mehr Funktionen aufweist als eine andere.
Die erste Generation der Programmiersprache gibt den Maschinencode an. Dies bedeutet, ein Programm als Folge von Bytes oder in extremen Fällen als Bits zu schreiben, die direkt von einem Computer ausgeführt werden können. In den meisten Fällen bezieht sich dies auf ein System, das Eingaben über fest codierte Schalter oder andere physikalische Mechanismen akzeptiert.
Programmiersprachen der zweiten Generation gelten als Assemblersprachen. Hierbei handelt es sich um Sprachen, die mit lesbarem Code und Befehlen geschrieben sind, die zwar an bestimmte Systemarchitekturen gebunden sind, jedoch eine einfachere Entwicklungsumgebung und eine gewisse Abstraktion bieten. Assemblersprachen werden seit 2011 ununterbrochen verwendet und sind nicht nur äußerst leistungsfähig, sondern können auch als Inline-Anweisungen in höheren Programmiersprachen verwendet werden. Falsch ist daher die Annahme, dass die Generierung einer Sprache ihrer Geschwindigkeit oder Leistungsfähigkeit entspricht.
Programmiersprachen der dritten Generation entkoppelten den Code noch stärker vom Prozessor und ermöglichten die Entwicklung von Code, der besser lesbare Anweisungen verwendete. Darüber hinaus wurden Compiler entwickelt, die eine einzelne Codezeile in mehrere Assemblyanweisungen über mehrere Plattformen und schließlich in Dutzende oder mehr Maschinencodeanweisungen umwandeln können. Nahezu alle Computersprachen, die native ausführbare Binärdateien und Bibliotheken kompilieren können, werden als Sprachen der dritten Generation betrachtet.
Im Allgemeinen wird eine Sprache der vierten Generation als eine Sprache angesehen, die eine Art Programmiersprache verwenden soll, die für den Benutzer sehr natürlich ist. Es kann auch als eine Sprache definiert werden, die visuelle Elemente verwendet, um das endgültige Programm zu erstellen. Eine dritte Definition ist eine Programmiersprache, die für einen bestimmten Zweck erstellt wurde, z. B. eine Datenbank-Programmiersprache oder eine Rapid Application Development (RAD) -Sprache.
Eine lose Definition einer Computersprache der fünften Generation ermöglicht es einem Programmierer, dem Computer ein Problem vorzustellen, das er dann zu lösen versucht. Die meisten Sprachen, die als Sprache der fünften Generation aufgeführt werden, sind überwiegend akademischer Natur. Andere Programmiersprachengenerationen, wie die sechste und die siebte, wurden von kommerziellen Sprachentwicklern für Marketingzwecke verwendet.