- 4GL
-
Als Fourth generation language oder kurz 4GL bezeichnet man Programmiersprachen bzw. Programmierumgebungen der vierten Generation. Diese sind darauf ausgerichtet, rasch – mit möglichst wenigen Codezeilen – für einen bestimmten Anwendungsbereich Funktionen oder komplette Anwendungen schreiben zu können.
Der Begriff 4GL ist nicht exakt definierbar und wird vor allem für Marketingzwecke eingesetzt. Gemeinsames Hauptziel aller 4GL ist es jedoch, im Vergleich mit Sprachen der dritten Generation dieselbe Funktionalität mit weniger Code zu erreichen. Der Begriff wurde in den 1980er Jahren häufig verwendet. Heute wird auch der Begriff Rapid Application Development (RAD) mit überlappender Semantik angewandt.
Bei Sprachen der dritten Generation stand die Einführung von standardisierten Kontrollstrukturen im Vordergrund. In der vierten Generation liegen zusätzliche Bausteine, die häufig in spezialisierten Anwendungen vorkommen, oder auch (grafische) Codegeneratoren bereits vor. Somit besteht die Trennlinie häufig nicht in der eigentlichen Sprachsyntax, sondern in den bereitgestellten Standardbibliotheken und dem Abstraktionsgrad, den sie erlauben. Die MFC und das .NET-Framework stellen beispielsweise wesentlich abstraktere Arten der Programmierung dar als die klassische Verwendung von WINAPI-Aufrufen. Dabei muss die Entwicklungssprache nicht gewechselt werden: Beides ist beispielsweise mit C++ möglich.
Die Bezeichnung 4GL wurde stark von James Martin propagiert. Er benutzte sie zuerst 1982 in seinem Buch Application Development Without Programmers („Anwendungsentwicklung ohne Programmierer“). Diese Deutung hat sich nicht durchgesetzt: Nach wie vor wird trotz Codegeneratoren und Abstraktionsbibliotheken die eigentliche Programmlogik von Programmierern erstellt.
Zielsetzung
- Verringerung des Programmieraufwands durch kürzere und verständlichere Programme
- bessere Wartbarkeit und Erweiterbarkeit der Programme durch bessere Lesbarkeit
- daraus resultierend eine Reduzierung der Kosten
Typen
- Berichtgeneratoren
- Eingabeformulargeneratoren
- Gesamtsysteme, die Angaben aus CASE-Systemen übernehmen und mit Bericht- und Eingabegeneratoren und weiterer Angabe von Prozesslogik ganze Systeme generieren. Ein Beispiel dazu ist das Werkzeug Information Engineering von James Martin, das erlaubt, die Resultate von Systemanalyse und Systemdesign zu erfassen (in der Form von Datenflussdiagrammen, Entity-Relationship-Diagrammen und Entity-Life-Cycle-Diagrammen). Daraus wurden dann hunderttausende von COBOL-Programmzeilen generiert.
Wikimedia Foundation.