Programmiersprachengenerationen - Programming language generations

Programmiersprachen wurden in mehrere Programmiersprachengenerationen eingeteilt . Historisch wurde diese Klassifikation verwendet, um die zunehmende Macht von Programmierstilen anzuzeigen. Spätere Autoren haben die Bedeutungen etwas neu definiert, da Unterscheidungen, die zuvor als wichtig angesehen wurden, für die gegenwärtige Praxis an Bedeutung verloren haben.

Generationen

Erste Generation (1GL)

Beispiele: maschinennahe Programmiersprachen

Eine Programmiersprache der ersten Generation (1GL) ist eine Programmiersprache auf Maschinenebene .

Eine (Programmier-)Sprache der ersten Generation (1GL) ist eine Gruppierung von Programmiersprachen, bei denen es sich um Sprachen auf Maschinenebene handelt, die zum Programmieren von Computern der ersten Generation verwendet werden . Ursprünglich wurde kein Übersetzer verwendet, um die Sprache der ersten Generation zu kompilieren oder zusammenzubauen . Die Programmieranweisungen der ersten Generation wurden über die Schalter auf der Vorderseite des Computersystems eingegeben .

Die Befehle in 1GL bestehen aus Binärzahlen , dargestellt durch 1s und 0s. Dies macht die Sprache für das Verständnis der Maschine geeignet, aber für den menschlichen Programmierer viel schwieriger zu interpretieren und zu lernen.

Zweite Generation (2GL)

Beispiele: Assemblersprachen

Die Programmiersprache der zweiten Generation (2GL) ist eine Generationsmethode, um Assemblersprachen zu kategorisieren .

Dritte Generation (3GL)

Beispiele: C , C++ , Java , Python , PHP , Perl , C# , BASIC , Pascal , Fortran , ALGOL , COBOL

3GLs sind viel maschinenunabhängiger (portabel) und programmiererfreundlicher. Dazu gehören Funktionen wie eine verbesserte Unterstützung für aggregierte Datentypen und das Ausdrücken von Konzepten auf eine Weise, die den Programmierer und nicht den Computer begünstigt. Eine Sprache der dritten Generation verbessert sich gegenüber einer Sprache der zweiten Generation, indem der Computer sich um nicht wesentliche Details kümmert. 3GLs sind abstrakter als frühere Sprachengenerationen und können daher als höherwertige Sprachen als ihre Gegenstücke der ersten und zweiten Generation angesehen werden. Fortran , ALGOL und COBOL wurden erstmals in den späten 1950er Jahren eingeführt und sind Beispiele für frühe 3GLs.

Die beliebtesten Allzwecksprachen heute wie C , C++ , C# , Java , BASIC und Pascal sind ebenfalls Sprachen der dritten Generation, obwohl jede dieser Sprachen basierend auf anderen zeitgenössischen Merkmalen weiter in andere Kategorien unterteilt werden kann. Die meisten 3GLs unterstützen strukturierte Programmierung . Viele unterstützen objektorientierte Programmierung . Merkmale wie diese werden häufiger verwendet, um eine Sprache zu beschreiben, anstatt nur eine 3GL zu sein.

Vierte Generation (4GL)

Beispiele: ABAP , Unix Shell , SQL , PL/SQL , Oracle Reports , R

Sprachen der vierten Generation sind in der Regel auf sehr spezifische Programmierdomänen spezialisiert . 4GLs können Unterstützung für Datenbankverwaltung , Berichterstellung , mathematische Optimierung , GUI-Entwicklung oder Webentwicklung umfassen .

Fünfte Generation (5GL)

Beispiele: Prolog , OPS5 , Merkur

Eine Programmiersprache der fünften Generation (5GL) ist jede Programmiersprache, die auf der Problemlösung unter Verwendung von Beschränkungen basiert, die dem Programm gegeben sind, anstatt einen von einem Programmierer geschriebenen Algorithmus zu verwenden . Die meisten auf Einschränkungen basierenden und logischen Programmiersprachen und einige andere deklarative Sprachen sind Sprachen der fünften Generation.

Während die Programmiersprachen der 4 . Auf diese Weise muss sich der Benutzer nur darum kümmern, welche Probleme gelöst und welche Bedingungen erfüllt werden müssen, ohne sich Gedanken darüber zu machen, wie eine Routine oder ein Algorithmus zu ihrer Lösung implementiert wird. Sprachen der fünften Generation werden hauptsächlich in der Forschung zu künstlicher Intelligenz verwendet. OPS5 und Mercury sind Beispiele für Sprachen der fünften Generation, ebenso wie ICAD , das auf Lisp aufbaut . KL-ONE ist ein Beispiel für eine verwandte Idee, eine Rahmensprache .

Geschichte

Die Begriffe "erste Generation" und "zweite Generation" Programmiersprache wurden vor der Prägung des Begriffs "dritte Generation" nicht verwendet; keiner dieser drei Begriffe wird in frühen Kompendien von Programmiersprachen erwähnt. Die Einführung einer dritten Generation der Computertechnologie fiel mit der Schaffung einer neuen Generation von Programmiersprachen zusammen. Das Marketing für diesen Generationswechsel in Maschinen mit mehreren wichtigen Veränderungen korreliert in sogenannten wurden High-Level - Programmiersprachen , wie unten diskutiert, technische Inhalte der zweiten / dritten Generation unterscheidet zwischen High-Level - Programmiersprachen wie auch während nachträglich Umbenennung geben Maschine- Codesprachen als erste Generation und Assemblersprachen als zweite Generation .

Anfangs wurden alle Programmiersprachen auf einer höheren Ebene als Assembler als " dritte Generation " bezeichnet, später wurde jedoch der Begriff " vierte Generation " eingeführt, um zu versuchen, die (damals) neuen deklarativen Sprachen (wie Prolog und Domänen- spezifische Sprachen) , die auf einem noch höheren Niveau zu betreiben beansprucht, und in einer Domäne noch näher an den Benutzer (zB bei einer natürlichen Sprache Ebene) als die ursprüngliche, imperative Hochsprachen wie Pascal , C , Algol , Fortran , BASIS usw.

Die "generationelle" Klassifikation von Hochsprachen (dritte Generation und später) war nie ganz genau und wurde später vielleicht aufgegeben, wobei genauere Klassifikationen allgemeine Verwendung fanden, wie objektorientiert , deklarativ und funktional. C führte zu C++ und später zu Java und C# ; Lisp zu CLOS ; Ada bis Ada 2012 ; und sogar COBOL bis COBOL 2002 . Auch in dieser "Generation" sind neue Sprachen entstanden.

Siehe auch

Verweise