it-swarm.com.de

Was sind 4. und 5. Programmiersprachengenerationen? Gibt es noch mehr davon?

Da es häufig auf Schul-/College-Ebene klassifiziert wird, sind beliebte Programmiersprachen (C #, Java, C++) alle Sprachen der 3. Generation (mit einem höheren Abstraktionsgrad von den physischen Teilen der Maschine). Außerdem werden Assemblersprachen als Sprachen der 2. und Maschinensprachen als Sprachen der 1. Generation klassifiziert.

Anfangs dachte ich, SQL sollte als Sprache der 4. Generation betrachtet werden, da es abstrakter und weit entfernt von Details der Schleife und aussagekräftiger ist.

Ich habe gerade herausgefunden, dass es Sprachen der 4. und 5. Generation gibt, aber auf welcher Grundlage kann eine Programmiersprache oder -technologie als Sprache der 4. oder 5. Generation eingestuft werden?

Gibt es auch Sprachen der 6. oder 7. Generation?

36
Ali

Übersicht über einfache Generationen: Eine Sprache ist die n-te Generation, wenn es sich um Bausteine ​​handelt

  1. bits
  2. anleitung
  3. Abstrakte Operationen
  4. Domänenobjekte
  5. Programmziele

Daher sind auch Sprachen wie Google Go oder Apple Swift) immer noch solide in der 3. Generation. Regex ist eine Text-Matching-Sprache, die es zu einer Sprache der frühen 4. Generation macht Nach dieser Definition stimmt die 4. Generation eng mit den DSLs überein. Beachten Sie jedoch, dass Sprachen wie C++ zusätzlich zu Length reale Typen wie Weight und float haben können und double, was sie zur hybriden 3./4. Generation macht.

Sprachen der 5. Generation existieren praktisch nicht, da sie im Allgemeinen eine KI-Stufe erfordern, die nie zustande gekommen ist. Die Tatsache, dass wir Programmierer immer noch benötigt werden, liegt genau daran, dass Nicht-Programmierer einem Computer nicht genau genug mitteilen können, was sie genau wollen.

36
MSalters

"Sprache der n-ten Generation" ist ein Schlagwort. Es ist ein Marketingbegriff. Es gibt keine allgemein akzeptierte Definition dessen, was genau die "n-te Generation" für n> 2 definiert. Einige Leute kategorisieren "Skriptsprachen" wie Perl oder Python als 4GLs, weil sie viel höher sind) Level als C, während andere denken, dass die bestimmenden Merkmale von 4GLs darin bestehen, dass sie domänenspezifisch sind, z. B. SQL. Einige Trottel denken sogar, dass Java (eine Sprache Mitte der 90er Jahre voller Objektorientierung und Müllabfuhr und -reflexion) gehört zur gleichen Kategorie „3GL“ wie Fortran (aus den 50er Jahren) und C (aus den 70er Jahren).

Eine so verwirrte Kategorisierung wie „Sprache der 4. Generation“ nützt nichts. Sie können es in alten Lehrbüchern sehen oder von Leuten hören, die in den 80er Jahren mit dem Programmieren begonnen haben, aber ein Tag wie „4GL“ ist wertlos, ohne zu erklären, was genau der Autor damit meint.

Da niemand sofort versteht, was Sie unter „4GL“ verstehen, sollten Sie solche Kategorisierungen nicht verwenden. Verwenden Sie stattdessen bestimmte Begriffe, um genau zu kommunizieren, was Sie meinen. Z.B. Alle NASM, LLVM IR und Jasmin sind Assemblersprachen, aber die beiden letztgenannten Ziel-VMs und die letzte ist auch eine objektorientierte Programmiersprache. Sind alle diese 2GLs? SQL ist eine teilweise deklarative, domänenspezifische Sprache für Datenbankabfragen aus den 80er Jahren. Und TeX ist eine domänenspezifische Sprache für den Satz aus den 70er Jahren. Sind sie beide 4GLs, da sie beide mehr oder weniger domänenspezifisch sind?

88
amon