Eine Programmiersprache der vierten Generation ( 4GL ) ist eine höhere Programmiersprache , die zu einer Klasse von Sprachen gehört , die als Weiterentwicklung der Programmiersprachen der dritten Generation (3GL) konzipiert wurden. Jede Generation von Programmiersprachen zielt darauf ab, eine höhere Abstraktionsebene der internen Hardware- Details zu bieten und die Sprache dadurch benutzerfreundlicher, leistungsfähiger und vielseitiger zu machen . Obwohl sich die Definition von 4GL im Laufe der Zeit verändert hat, lässt sie sich typischerweise dadurch charakterisieren, dass sie mit großen Informationsmengen gleichzeitig arbeitet, anstatt sich nur auf Bits und Bytes zu konzentrieren. Sprachen, die als 4GL bezeichnet werden, können beispielsweise Datenbankmanagement , Berichtserstellung , mathematische Optimierung , die Entwicklung grafischer Benutzeroberflächen (GUIs) oder Webentwicklung unterstützen . Einige Forscher geben an, dass 4GLs eine Untergruppe domänenspezifischer Sprachen darstellen . [ 1 ] [ 2 ]
Das Konzept der vierten Sprachgeneration (4GL) wurde von den 1970er- bis in die 1990er-Jahre entwickelt und überschnitt sich weitgehend mit der Entwicklung der dritten Sprachgeneration (3GL). 4GLs wurden als „nicht-prozedurale“ oder „programmgenerierende“ Sprachen definiert, im Gegensatz zu den algorithmischen oder prozeduralen Sprachen der dritten Sprachgeneration. Während 3GLs wie C , C++ , C# , Java und JavaScript nach wie vor für vielfältige Anwendungen beliebt sind, konzentrierten sich die ursprünglich definierten 4GLs auf Datenbanken, Berichte und Websites. [ 3 ] Einige fortgeschrittene 3GLs wie Python , Ruby und Perl kombinieren bestimmte 4GL-Funktionen in einer universellen 3GL-Umgebung. [ 4 ] Zudem wurden Bibliotheken mit 4GL-ähnlichen Funktionen als Erweiterungen für die meisten gängigen 3GLs entwickelt, wodurch Sprachen entstanden, die eine Mischung aus 3GL und 4GL darstellen und die Unterscheidung verwischen. [ 5 ]
In den 1980er und 1990er Jahren gab es Bestrebungen zur Entwicklung von Programmiersprachen der fünften Generation (5GL).
Geschichte
Obwohl der Begriff 4GL bereits früher in Veröffentlichungen und Diskussionen verwendet wurde, prägte James Martin ihn erstmals 1981 in seinem Buch „Application Development Without Programmers “ [ 6 ] für nicht-prozedurale, höhere Spezifikationssprachen . Frühe 4GLs waren in primitiver Form in das Produkt Informatics MARK-IV (1967) und Sperrys MAPPER (intern verwendet 1969, veröffentlicht 1979) integriert .
Die Gründe für die Entstehung der „4GL“ und das anhaltende Interesse daran sind vielfältig. Der Begriff kann auf eine breite Palette von Softwareprodukten angewendet werden. Er kann aber auch einen Ansatz bezeichnen, der auf erweiterte semantische Eigenschaften und mehr Implementierungsmöglichkeiten abzielt. So wie die 3GL dem Programmierer mehr Möglichkeiten bot, öffnete die 4GL die Entwicklungsumgebung einem breiteren Nutzerkreis.
Das frühe Eingabeschema für die 4GL unterstützte die Dateneingabe innerhalb der 72-Zeichen-Grenze der Lochkarte (8 Byte für die Sequenzierung), wobei ein Tag auf der Karte den Typ oder die Funktion identifizierte. Durch den gezielten Einsatz weniger Karten bot das 4GL-Deck vielfältige Verarbeitungs- und Berichtsmöglichkeiten, während die entsprechende Funktionalität in einer 3GL möglicherweise einen ganzen Karton oder mehr an Karten benötigte . [ 7 ]
Das 72-Zeichen-Format blieb eine Zeit lang bestehen , als die Hardware mit größeren Speichern und Terminalschnittstellen aufwartete. Trotz seiner Einschränkungen unterstützte dieser Ansatz hochkomplexe Anwendungen.
Mit der Verbesserung der Schnittstellen und der Möglichkeit längerer Anweisungen sowie grammatikgesteuerter Eingabeverarbeitung stieg die Leistungsfähigkeit. Ein Beispiel hierfür liefert Nicholas Rawlings in seinen Kommentaren für das Computer History Museum zu NCSS. [ 8 ] Er berichtet, dass James Martin Rawlings um eine NOMAD- Lösung für ein Standardproblem bat, das Martin als „ Ingenieurproblem“ bezeichnete : „Geben Sie Ingenieuren, deren Leistungsbeurteilungen im Durchschnitt 7 oder besser betragen, eine Gehaltserhöhung von 6 %.“ Martin lieferte „ein Dutzend Seiten COBOL und dann nur ein oder zwei Seiten Mark IV aus Informatics “. Rawlings bot eine einzelne Anweisung an, die eine Set-at-a-Time-Operation durchführte.
Die Entwicklung der 4GL wurde von mehreren Faktoren beeinflusst, wobei die Hardware- und Betriebssystembeschränkungen eine große Rolle spielten. Bei der Markteinführung der 4GL erforderte die heterogene Mischung an Hardware und Betriebssystemen die Entwicklung kundenspezifischer Anwendungen, um den Absatz zu sichern. Ein Beispiel hierfür ist das von Sperry entwickelte MAPPER- System . Obwohl es auf die Anfänge der 4GL zurückgeht, hat sich das System in vielen Anwendungen bewährt und wurde auf moderne Plattformen portiert. Die neueste Variante ist in das BIS- Angebot [ 9 ] von Unisys integriert . MARK-IV ist heute unter dem Namen VISION:BUILDER bekannt und wird von Computer Associates angeboten .
Die Santa Fe Railroad nutzte MAPPER zur Entwicklung eines Systems in einem Projekt, das ein frühes Beispiel für 4GL, Rapid Prototyping und Programmierung durch Benutzer war . [ 10 ] Die Idee war, dass es einfacher sei, Eisenbahnexperten den Umgang mit MAPPER beizubringen , als Programmierern die „Feinheiten des Eisenbahnbetriebs“ zu vermitteln.
Eine der ersten (und portablen) Sprachen mit 4GL-Eigenschaften war RAMIS, entwickelt von Gerald C. Cohen bei Mathematica , einem Unternehmen für mathematische Software. Cohen verließ Mathematica und gründete Information Builders, um eine ähnliche, auf Berichtserstellung ausgerichtete 4GL namens FOCUS zu entwickeln .
Die späteren 4GL-Typen sind an ein Datenbanksystem gebunden und unterscheiden sich stark von den früheren Typen in der Verwendung von Techniken und Ressourcen, die sich aus der allgemeinen Verbesserung der Computertechnik im Laufe der Zeit ergeben haben.
Eine interessante Wendung in der 4GL-Szene ist die Erkenntnis, dass grafische Benutzeroberflächen und die damit verbundenen Schlussfolgerungen des Benutzers eine Art „Sprache“ bilden, die nur unzureichend verstanden wird.
Typen
Es gibt verschiedene Arten von 4GLs:
- Tabellengesteuerte (codelose) Programmierung, üblicherweise mit einem Laufzeitframework und Bibliotheken. Anstatt Code zu verwenden, definiert der Entwickler seine Logik durch Auswahl einer Operation aus einer vordefinierten Liste von Befehlen zur Speicher- oder Datentabellenmanipulation. Anders ausgedrückt: Anstelle von Code verwendet der Entwickler tabellengesteuerte Algorithmen (siehe auch Kontrolltabellen , die zu diesem Zweck verwendet werden können). Diese Art von Tools eignet sich für die Entwicklung von Geschäftsanwendungen und besteht in der Regel aus einem Paket, das sowohl die Manipulation von Geschäftsdaten als auch die Berichterstellung ermöglicht. Daher verfügen sie über grafische Benutzeroberflächen (GUIs) und Berichtseditoren. Sie bieten üblicherweise die Integration mit einer oder mehreren Low-Level -DLLs (Dynamic Link Librarys ), die aus einer typischen 3GL-Sprache generiert werden, wenn hardware- oder betriebssystemspezifische Operationen erforderlich sind.
- Programmsprachen zur Berichtsgenerierung nehmen eine Beschreibung des Datenformats und des zu generierenden Berichts entgegen und erzeugen daraus entweder direkt den benötigten Bericht oder ein Programm zur Berichtsgenerierung (siehe auch RPG ).
- In ähnlicher Weise verwalten Bildschirmgeneratoren (auch Formulargeneratoren genannt) die Online-Interaktionen mit den Benutzern des Anwendungssystems oder generieren Programme, um dies zu tun.
- Ambitioniertere 4GLs (manchmal auch als Umgebungen der vierten Generation bezeichnet ) versuchen, automatisch ganze Systeme aus den Ausgaben von computergestützten Softwareentwicklungswerkzeugen (CASE), Spezifikationen von Bildschirmen und Berichten und gegebenenfalls auch der Spezifikation zusätzlicher Verarbeitungslogik zu generieren.
- Datenmanagement- 4GLs wie SAS , SPSS und Stata bieten ausgefeilte Codierungsbefehle für die Datenmanipulation, Dateiumformung, Fallauswahl und Datendokumentation bei der Aufbereitung von Daten für statistische Analysen und Berichte.
- Die sogenannten „XTalk“-Sprachen wurden ursprünglich 1987 mit Apples Hypercard entwickelt. Hypercard war der Vorläufer modernerer und leistungsfähigerer Programme wie SuperCard, Toolbook und LiveCode.
Einige 4GLs verfügen über integrierte Tools, die die einfache Angabe aller erforderlichen Informationen ermöglichen:
- James Martins Version der Methodik zur Entwicklung von Daten-Engineering -Systemen wurde automatisiert, um die Eingabe der Ergebnisse der Systemanalyse und des Systemdesigns in Form von Datenflussdiagrammen , Entity-Relationship-Diagrammen , Entity-Life-History-Diagrammen usw. zu ermöglichen, aus denen über Nacht Hunderttausende von COBOL- Zeilen generiert wurden.
- In jüngerer Zeit konnten die Produkte Oracle Designer und Oracle Developer Suite 4GL der Oracle Corporation integriert werden, um Datenbankdefinitionen sowie Formular- und Berichtsprogramme zu erstellen.
Low-Code-Umgebungen
Im 21. Jahrhundert haben sich 4GL-Systeme als „Low-Code“-Umgebungen oder -Plattformen für die schnelle Anwendungsentwicklung etabliert. Anbieter stellen häufig Beispielsysteme wie CRM, Vertragsmanagement und Bugtracking zur Verfügung, mit denen die Entwicklung mit geringem Programmieraufwand erfolgen kann. [ 11 ]
Beispiele
Allgemein einsetzbar / vielseitig
- 4. Dimension
- Accell/SQL (4GL) von Unify Corporation .
- Broadcom 2e (ehemals Synon 4GL) RPG/COBOL-Generator
- CA-Telon 4GL Cobol/PLI-Generator
- Clarion
- Clipper
- Cognos PowerHouse 4GL
- DataFlex (Microsoft Windows, Web, Mobilgeräte)
- DATENABRUF
- dBase
- FileMaker
- FOCUS
- Forté TOOL (transactional object-oriented language)
- GeneXus
- Harbour
- HyperCard (development and support were ended)
- IBM Rational EGL (Enterprise Generation Language)
- Infor
- LabVIEW
- LANSA
- LINC
- LiveCode
- M-Power
- NATURAL
- Omnis Studio SDK
- Oracle Application Development Framework
- OutSystems (Productivity/PaaS)
- Jmix/CUBA Platform (Productivity/Framework)
- PowerBuilder
- R:Base
- SheerPower4GL (Microsoft Windows only)
- SQLWindows/Team Developer
- Uniface
- Unix Shell
- Visual FoxPro (development and support were ended)
- Xojo
Database query languages
- FOCUS
- 4D QL
- Informix-4GL
- NATURAL
- OpenEdge Advanced Business Language (OpenEdge ABL)
- OpenROAD (Ingres 4GL)
- RAMIS
- SQL
Report generators
- Speedware EasyReporter
- LINC
- Oracle Reports
- OpenEdge Advanced Business Language (former Progress 4GL) Query/Results
- RPG-II
Extract data from files or database to create reports in a wide range of formats is done by the report generator tools.
Data manipulation, analysis, and reporting languages
- Ab Initio
- ABAP
- Clarion Programming Language
- CorVision
- Culprit
- ADS/Online (plus transaction processing)
- Easytrieve
- FOCUS
- GraphTalk
- IDL
- IGOR Pro
- Informix-4GL
- JSL
- LANSA
- LabVIEW
- LiveCode
- M-Power
- MANTIS
- MAPPER (Unisys/Sperry) now part of BIS
- MARK-IV (Sterling/Informatics) now VISION:BUILDER of CA
- Simulink a component of MATLAB
- NATURAL
- NOMAD
- Octave
- PL/SQL
- OpenEdge Advanced Business Language (former Progress 4GL)
- R
- RAMIS
- S
- Scilab
- SAS
- SPSS
- SQL PL
- SSIS
- SQR
- Stata
- Synon
- Wolfram Language
- XQuery
- XSLT
Software creators
- 4th Dimension (Software)
- LiveCode
- MATLAB's GUIDE
- Omnis Studio
- OpenROAD
- OpenEdge Advanced Business Language (former Progress 4GL) AppBuilder
- SuperTalk
- Visual DataFlex
- Xojo
- XUL Can be used with XQuery
Mathematical optimization
Database-driven GUI application development
Low-code / No-code development platforms
Screen painters and generators
- Oracle Forms
- OpenEdge Advanced Business Language (former Progress 4GL) ProVision
- SB+/SystemBuilder
Web development languages
- ActiveVFP
- CFML
- LANSA
- OutSystems
- Wavemaker
Music Programming language
See also
- List of fourth-generation programming languages
- Domain-specific language
- Rapid application development
References
- ^ 35. Hawaii International Conference on System Sciences - 1002 Domänenspezifische Sprachen für die Softwareentwicklung (Archiviert am 16. Mai 2011 in der Wayback Machine)
- ^ Arie van Deursen; Paul Klint; Joost Visser (1998). „Domänenspezifische Zeugensprachen: Eine kommentierte Bibliographie“ . Archiviert vom Original am 2. Februar 2009. Abgerufen am 15. März 2009 .
- ^ MacDonell, Stephen (November 1993). „Softwareentwicklung, CASE-Tools und 4GLs – Eine Übersicht über die Nutzung in Neuseeland. Teil 1“. 750 neuseeländische Organisationen . hdl : 10523/928 .
- ^ „Roger Clarkes Software-Generationen“ .
- ^ „Definition der Sprache der vierten Generation“ . PCMAG . Abgerufen am 7. Mai 2020 .
- ^ Martin, James . Anwendungsentwicklung ohne Programmierer. Prentice-Hall, 1981. ISBN 0-13-038943-9Die
- ^ „IBM Lochkarten“ . www.columbia.edu . Archiviert vom Original am 16.02.2019 . Abgerufen am 03.02.2019 .
- ^ „RAMIS und NOMAD: Telefonkonferenz von National Computer Software Systems, Inc. (NCSS) (Transkript)“ . Computer History Museum . 20.05.2005 . Abgerufen am 28.07.2025 .
- ^ „Data-Mining-Software, Datenanalyse und mehr: Funktionen des Unisys Business Information Server“ . Unisys . 21.08.2006. Archiviert vom Original am 21.08.2006 . Abgerufen am 03.02.2019 .
- ^ Louis Schlüter (1988). User-Designed Computing: Die nächste Generation .[Buch über Berichtsgeneratoren und MAPPER-Systeme]
- ^ Forrest, Conner. „Wie Salesforce Low-Code-Orchestrierung nutzt, um ‚strauchelnde IoT-Projekte‘ zu retten“" . ZDNet .
- ^ Marvin, Rob (10. August 2018). „Die besten Low-Code-Entwicklungsplattformen für 2019“ . PCMAG .
- ^ Sayer, Martin Heller und Peter (6. April 2018). „25 einfache Tools für die schnelle Entwicklung mobiler Apps“ . InfoWorld . Archiviert vom Original am 18. November 2017. Abgerufen am 17. November 2017 .
- ^ „DronaHQ. Apps ohne Programmierung erstellen“ . www.dronahq.com . Archiviert vom Original am 09.08.2019 . Abgerufen am 11.09.2019 .